c - 扫描c中的任意数量的字符
问题描述
我想读取未知数量的字符,不大于 10。
char word[10];
for( i=0;i<10;i++){
if( !scanf("%c",&word[i])){ //terminate with 0
getchar();
break;
}
}
问题是 number 也是一个字符,所以 if 语句不会被执行。是否有任何其他解决方案可以终止字符的输入,例如用 0。
解决方案
您可以使用do..while
循环。类似的东西(伪代码)
int keep_looping = 1;
int counter = 0;
do {
ret = scanf(" %c",&word[counter]);
if (!ret) continue; //can use more cleanup and error check
if (word[counter] == '0') keep_looping =0;
counter++;
}
while (keep_looping && counter < 10)
推荐阅读
- reactjs - Safari & event.target.select()
- php - @php artisan package:discover 处理返回的自动加载转储后事件,错误代码为 255
- laravel - 在 laravel 中显示数据库中的多个图像
- xml - how to group XML without attributes
- javascript - 将 CSS 值存储在 JavaScript 变量中
- node.js - NodeJS + CloudSQL Postgres - 连接随机终止
- reactjs - 将 typeahead bootstrap 与 Elasticsearch 一起使用
- java - Java GC 运行导致操作系统上的内存使用量增加
- swift - 如何使用自动布局锚为 UICollectionView 设置动画?
- html - 如何做按钮平行