如何在复制粘贴的用户输入中处理双线换行?

时间:2018-04-20 17:51:46

标签: c

所以我有这段代码:

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;信息。但是,如果用户使用单个换行结束输入,则循环应该继续。

我知道为什么它不能像那种形式那样工作,但我现在没有想法。无论我尝试做什么,它仍然有效。

如果您想知道为什么我希望它以这种奇怪的方式工作,这是我的家庭作业的一部分,与练习的主要目的完全无关。但是,由于这个原因,我的程序没有通过单元测试。

0 个答案:

没有答案