c - 我试图终止使用 fgets() 函数的 while() 循环

标签 c string loops

char src[5][100];
size_t counter = 0 ;  // counter for src as it is two dimensional            
printf("Enter the string : ");
while( counter < 5 && (fgets(src[counter],100,stdin) != NULL) && src[counter][0] != '\0' ) {
    counter++; 
}

我正在尝试终止这个循环,一种方法是采用某种固定输入,例如退出或其他内容,我不想使用它。 另一种方法是按 ctrl + D 告诉 EOF ,我也不想这样做。

最佳答案

fgets读取一行时,它包含终止行字符\n。如果用户只是按 enter,fgets 将返回字符串 "\n" 而不是空字符串。尝试更换条件

src[counter][0] != '\0' 

src[counter][0] != '\n' 

关于c - 我试图终止使用 fgets() 函数的 while() 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36336225/

相关文章:

c - 为什么操作系统需要/维护内核线程?

c++ - 将 float 序列化为 32 位整数的可移植方法

java - 如何比较Java中的字符串?

python - 如何在 python 中使用循环有效地进行特征工程?

cURL 具有多接口(interface),可与代理进行多个连接

php - 如何将数组作为对象属性添加到 PHP 扩展中声明的类中?

javascript - 将字符串的第一个字符复制到另一个 div jquery 或 javascript

database - 如何从搜索查询中搜索子项?

python - 使用 BS4、Selenium 在 Python 中抓取动态数据并避免重复

java - 如果我们在父类构造函数中添加一个super(),那么在创建子类的对象时,这个super()将调用哪个类?