Tag: scanf

scanf()和fgets()之间的区别

我想知道fgets()和scanf()之间的区别。 我使用C作为我的平台。

如何使用scanf读取空格分隔的数字

我想读取使用scanf()函数用空格分隔的数字(整数类型)。 我已阅读以下内容 C,从单输入线读取多个数字(scanf?) 如何用空格读取scanf 这对我没什么帮助。 如何读取带空格的数字作为分隔符。 例如,我有以下数字作为输入2 5 7 4 3 8 18现在我想将它们存储在不同的变量中。 请帮忙。

如何从输入读取,直到使用scanf()找到换行符?

当我应该从输入读取直到有空格然后直到用户按下回车时,我被要求在C中完成工作。 如果我这样做: scanf(“%2000s %2000s”, a, b); 它将遵循第一条规则而不是第二条规则。 如果我写: 我很聪明 我得到的相当于: a =“我”; b =“am”; 但它应该是: a =“我”; b =“很聪明”; 我已经尝试过: scanf(“%2000s %2000[^\n]\n”, a, b); 和 scanf(“%2000s %2000[^\0]\0”, a, b); 在第一个,它等待用户按Ctrl + D (发送EOF),这不是我想要的。 在第二个,它不会编译。 根据编译器: 警告:’%[‘格式没有关闭’]’ 有什么好办法解决这个问题吗?

获取sscanf读取的字符数?

我正在解析一个字符串(一个char* ),我正在使用sscanf将字符串中的数字解析为双精度数,如下所示: // char* expression; double value = 0; sscanf(expression, “%lf”, &value); 这很好用,但我想继续通过常规方法解析字符串。 我需要知道sscanf已经解析了多少个字符,以便我可以从新的偏移量恢复手动解析。 显然,最简单的方法是以某种方式计算sscanf解析的字符数,但如果没有简单的方法可以做到这一点,我愿意接受另外的双解析选项。 但是,我目前正在使用sscanf因为它快速,简单且易读。 无论哪种方式,我只需要一种方法来评估double并继续解析它。

Scanf没有扫描%c字符但跳过声明,为什么?

我使用switch case语句编写了一个程序,并要求输入char但它不会在控制台窗口中询问char但是完全跳过它 int main() { float a, b, ans; char opr; printf(“\nGIVE THE VALUES OF THE TWO NUMBERS\n”); scanf(” %f %f”,&a,&b); printf(“\nGIVE THE REQUIRED OPERATOR\n”); //no display(echo) on the screen //opr = getch(); //displays on the screen //opr = getche(); scanf(“%c”,&opr); switch(opr) { case ‘+’ : ans = a+b; printf(“%f”, ans); break; case ‘-‘ : […]

在C中读取单个字符

我正在尝试从控制台读取一个字符(在while循环中)。 但它不止一次地读了。 输入: a 输出: char : a char : char : ‘ 码: while(..) { char in; scanf(“%c”,&in); } 我怎么才能读’a’?

看跌和获取function如何运作?

main() { char name[20]; printf(“enter your name\n”); scanf(“%s”,name); printf(“%s”,name); gets(name); puts(name); } 输入:Sampad Saha 产量 桑帕德萨哈 这里put只使用从gets()的输入。 因为,如果我省略这个printf()输出将是 萨哈 所以这里的put不会打印通过scanf()给出的任何内容。 main() { char color[20]; printf(“enter your name\n”); scanf(“%s”,color); puts(color); } 但是这里的puts()使用了来自scanf()的输入。

Scanf导致C程序崩溃

这个简单的问题导致我的整个程序在第一次输入时崩溃。 如果我删除输入,程序工作正常,但一旦我将scanf添加到代码并输入输入程序崩溃。 #include #include #include #define MAXEMPS 3 // stub program code int main (void){ char answer; do { printf(“\n Do you have another(Y/N): “); scanf(“%c”, answer); }while(answer == ‘Y’ || answer == ‘y’); getchar(); printf(” Press any key … “); return 0; } // main

C,从单输入线读取多个数字(scanf?)

我在C中编写了一个应用程序,它需要输入两行。 第一个输入表示int数组的大小,第二个输入包含由空格分隔的值。 例如,以下输入 5 1 2 3 4 99 应该创建一个包含{1,2,3,4,99}的数组 最快的方法是什么? 我的问题是读取多个数字而不循环遍历整个字符串检查它是空格还是数字? 谢谢。

即使使用fflush(stdin),程序也不会在scanf()之后执行gets()

在浪费了太多时间搜索为什么我的程序在使用scanf()之后没有执行gets()时,我找到了一个解决方案,即在scanf()之后使用fflush(stdin)来使gets()获得一个字符串。 问题是fflush(stdin)没有做到预期的结果:程序继续跳过gets(),我不能在控制台中写任何短语来读取。 我的代码是下一个: #include #include int main(){ char nombre[10]; char mensaje[80]; printf(“Type your name:\n”); scanf(“%s”, nombre); fflush(stdin); printf(“Now, type a message:\n”); gets(mensaje); printf(“3/%s:%s”,nombre,mensaje); return 0; }