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,我也不想这样做。
答案 0 :(得分:2)
当fgets
读取一行时,包含终止结束行字符\n
。如果用户只按enter
,则fgets将返回字符串"\n"
而不是空字符串。尝试更换条件
src[counter][0] != '\0'
通过
src[counter][0] != '\n'
答案 1 :(得分:1)
break;
正是您所寻找的,它可以在任何时候打破循环
https://msdn.microsoft.com/en-us/library/37zc9d2w.aspx
同样continue
用于跳过一个循环周期
答案 2 :(得分:1)
正如@Vladp所说,你要么在while循环中使用break,要么你有一个你添加到continue条件的控制变量。判断或不继续循环的唯一方法是使用if语句,并且如果你可以检查,例如,重复次数,经过的时间,或者如你所说,输入来自fgets()。