所以我有这段代码:
void read_string(char *dest, int size) {
fgets(dest, size, stdin);
unsigned int i;
for(i=0; i<strlen(dest); i++)
if(dest[i]=='\n')
dest[i]='\0';
}
int main() {
char arr[1000][64];
int i=0;
while(i<1000) {
printf("Enter filename: ");
read_string(arr[i], 62);
if(strlen(arr[i])==0)
break;
i++;
}
}
但是,如果我复制一个字符串,如:
a
(excluding this line)
...并将其粘贴到命令提示符中,输出如下:
输入文件名:a
输入文件名:
循环中断,程序继续。在那种情况下,我期望的结果是程序打破循环而不显示下一个&#34;输入文件名&#34;信息。但是,如果用户使用单个换行结束输入,则循环应该继续。
我知道为什么它不能像那种形式那样工作,但我现在没有想法。无论我尝试做什么,它仍然有效。
如果您想知道为什么我希望它以这种奇怪的方式工作,这是我的家庭作业的一部分,与练习的主要目的完全无关。但是,由于这个原因,我的程序没有通过单元测试。