我使用GMP包编写了RSA。在使用纯文本时,我使用scanf("%s",name);
将其作为字符串
然后转换成gmp类型。运行我的程序50次后,已成功执行,scanf功能无效。所以,我使用fgets (name, 100, stdin);
和scanf ("%[^\n]%*c", name);
阅读了输入,效果很好。
使用这两种scanf函数有什么区别。
答案 0 :(得分:2)
scanf("%s",name);
将扫描用户输入,直到遇到空格,即当您键入hi bye
时,只有hi
将存储在name
中。另一方面,
scanf ("%[^\n]%*c", name);
将扫描,直到遇到\n
或回车键。 %*c
告诉scanf
扫描角色并将其丢弃。在您的情况下,%*c
会在输入字符串后丢弃\n
中出现的stdin
字符。