我想写一本线(包括空格)的文件中的一个去与下面的代码: - 上面代码的意外的行为,并得到()
//in main
char ch[40];
FILE *p;
char choice;
p=fopen("textfile.txt","w");
printf("%s\n","you are going to write in the first file");
while (1)
{
gets(ch);// if i use scanf() here the result is same,i.e,frustrating
fputs(ch,p);
printf("%s\n","do you want to write more");
choice=getche();
if (choice=='n'|| choice=='N')
{
break;
}
}
结果是令人沮丧的我,很难解释,但我仍然会尝试。 如果我进入,比如说,
"my name is bayant."
并按进入statment说到屏幕
"do you want to write more"
是好到现在,但是当我prees的关键除了“n”或“N '(所要求的程序来写多行的逻辑),则该消息
"do you want to write more"
打印again.Now如果我按比其他键‘n’或‘N’上但屏幕程序的同一行的打印跟随并打印声明
"do you want to write more"
4倍,这是词的数量,即4在此case.By下面这个呆板过程我得到想要的行上我的文件,但如果响应于声明的第一次印刷
"do you want to write more"
我按“n”或“N”,那么只有第一个单词,即“我的”在这种情况下打印在文件上。 那么解决方案是一次性在文件上写出完整的一行?为什么在这种情况下get()和fputs()似乎无效? thanxxx提前。
希望得到()'因为C11 – Manu343726
得到()缓冲区溢出天堂!!否则请不要使用gets,反而使用fgets。在Windows使用gets_s() – tesseract
@tesseract我知道它,但即使我使用scanf()问题仍然存在。 – YakRangi