你好,我有一个学校的作业,使一个程序,发现一个字,并用文本中的另一个替换它。直到现在我还没有完成char字符串,我有一个小问题。我需要扫描文本,查找字和字代替,但只有文字scanf的工作和其他的都只是跳过..scanf三次在c不工作?
char w[10000];
char find[10000];
char replace[10000];
int l,c,b,diff,i,k,yes=0,vm;
printf("Text: ");scanf("%[^\n]s",w);
printf("\nFind: ");scanf("%[^\n]s", find);
printf("\nReplace: ");scanf("%[^\n]s", replace);
如果你可以说为什么scanf函数用于查找和替换只是跳过我将非常感谢。
对不起,我的母语不好。
需要消耗换行符这是在缓冲器由'scanf的做到这一点( “%[^ \ n]的%* C”,瓦特);' – Gopi
请注意,'[^ \ n]'*是一个转换说明符,它不是's'说明符的修饰符。另外,请检查'scanf()'的返回值。 – unwind
@gopi'scanf(“%[^ \ n]%* c”,w)'扫描_nothing_如果用户只输入''\ n''。'w'仍未初始化,'\ n'仍然保留在'stdin'中,潜在地导致跟随'scanf()'的类似问题。 – chux