34得票6回答
如果在“scanf”语句中没有放置“&”,会发生什么?

我曾经参加过一次面试,被问到以下问题: 你认为以下内容怎么样?int i; scanf ("%d", i); printf ("i: %d\n", i); 程序将会成功编译。 程序会打印错误的数字,但会一直运行到结束而不崩溃。 我当时的回答是错误的。我被压倒了。 之后他们解雇了我:...

34得票2回答
为什么在Linux系统上,glibc库中的sscanf函数比fscanf函数慢得多?

我正在使用GCC 4.8和glibc 2.19在x86_64 Linux上。在尝试不同的输入方法(另一个问题)时,我比较了fscanf和sscanf。具体而言,我要么直接在标准输入上使用fscanf:char s[128]; int n; while (fscanf(stdin, "%127...

33得票5回答
使用scanf如何读取以空格分隔的数字

我想使用scanf()函数读取由空格分隔的数字(整数类型)。我已经阅读了以下内容: C语言,如何从单个输入行读取多个数字(scanf?) 如何读取带有空格的scanf 但这些并没有对我很有帮助。 我该如何使用空格作为分隔符来读取数字?例如,我有以下数字作为输入:2 5 7 4 3 8...

32得票7回答
如何在C语言中读取scanf直到EOF?

我有这段代码,但是一旦它到达了预定的EOF(文件结束符),它就会重复循环并再次使用scanf。int main(void) { char words[16]; while(scanf("%15s", words) == 1) printf...

31得票9回答
如何使用scanf仅读取整数?

我希望代码能一直运行,直到用户输入一个整数值。 这个代码适用于 char 和 char 数组。 我已经完成了以下内容: #include <stdio.h> int main() { int n; printf("Please enter an intege...

31得票3回答
在scanf格式说明符中,星号的含义是什么?

我偶然发现了这段代码,但我一直无法弄清它的目的或者它是如何工作的:int word_count; scanf("%d%*c", &word_count); 我最初的想法是%*d是在引用一个char指针或禁止word_count接受char变量。 有人能解释一下吗?

30得票1回答
如何在循环中使用sscanf?

有没有一种好的方法可以使用 sscanf 循环遍历字符串? 假设我有一个看起来像这样的字符串:char line[] = "100 185 400 11 1000"; 我想打印这些数字的总和。我真正想写的是:int n, sum = 0; while (1 == sscanf(line, "...

29得票6回答
scanf: "%[^\n]" 跳过了第二个输入,但是 " %[^\n]" 却没有。为什么?

考虑以下代码:#include <stdio.h> int main (void) { char str1[128], str2[128], str3[128]; printf ("\nEnter str1: "); scanf ("%[^\n]", str1); ...

29得票7回答
如何使用scanf()从输入中读取直到找到换行符?

我被要求用C语言编写一个程序,在程序中需要从输入流中读取内容,读到空格后停止读取,然后再读取一直到用户按下回车键为止。 如果我这样做:scanf("%2000s %2000s", a, b); 它将遵循第一条规则,但不会遵循第二条规则。 如果我写: I am smart 我得到的等同于: ...

28得票1回答
如何在使用scanf等函数时使用int16_t或int32_t?

在C语言中,我理解int16_t或int32_t是typedef定义的,分别代表计算机上的16位和32位数字。当不同系统的int或short并非总是表示为32位或16位时,您可能会使用它们来确保数字为16位或32位(这种假设正确吗?当我在网上搜索时,得到了不同的答案)。 我的问题是:如果我需...