49得票7回答
C语言中,scanf()、gets()和fgets()有什么区别?

我一直在做一个相当简单的程序,将字符串(假设输入的是数字)转换为整数。 完成后,我注意到了一些非常奇怪的“错误”,因为我的scanf()、gets()和fgets()函数知识有限,所以无法解答。(虽然我读了很多文献。) 所以,不多说废话,这里是程序的代码:#include <stdi...

7得票4回答
如何使用scanf()扫描带有空格的字符串?

我想编写一个子程序,让用户输入他们的评论。我使用 scanf("%s", X) 来让他们输入评论,但是它只能将空格前的单词存储到字符串中。 如何解决这个问题,以便将整个句子存储到字符串或文件中? 下面是我的代码: FILE *fp; char comment[100]; fp=fopen...

7得票2回答
如何使用scanf中的宽度说明符0?

如何使用scanf的宽度说明符0? 1)不受限制的宽度(如在cygwin gcc版本4.5.3中看到的) 2)未定义行为 3)其他情况? 我的应用程序(未显示)作为scanf()的更大格式字符串的一部分动态形成宽度说明符。很少会在格式字符串的中间创建一个“%0s”。在这种情况下,“%0s”的...

38得票2回答
C/C++中printf()在scanf()之前的问题

我正在使用Eclipse编写C/C++代码,但是我遇到了一些可能很简单的问题。在下面的代码中,我先使用printf()再使用scanf(),尽管printf在scanf()之前写入,但输出结果不同。我在这里找到了类似问题的一些信息。但我还是没能解决它。有什么想法吗? 代码:#include ...

11得票2回答
`std::istream::operator>>()`可以接受类似于stdio中的%i格式说明符的整数基数前缀吗?

当使用scanf()及其变体时,格式说明符%i可以接受十六进制(前缀为"0x"),八进制(前缀为"0")或十进制(无前缀)的数据。因此,例如字符串"0x10"、"020"和"16"都会被转换为一个具有十进制值16的整数。 那么,使用std::istream::operator>>格式化输入是...

7得票5回答
在sscanf中如何转义方括号]

我想要扫描类似于以下的行: "[25, 28] => 34" 我写了一个小程序来测试它: 我编写了一个小程序来进行测试: #include <cstdlib> #include <iostream> int main() { char*...

35得票10回答
寻找 C# 中与 scanf 类似的函数

我以前使用过C语言编写代码,发现scanf非常有用。不幸的是,在C#中没有类似的功能。 我正在使用它来解析半结构化文本文件。 我在这里找到了一个有趣的scanf实现示例。不幸的是,它看起来很老旧而且不完整。 有人知道C#中的scanf实现吗?或者至少有什么东西可以作为反转的string....

55得票16回答
为什么在这段代码中使用scanf()会导致无限循环?

我有一个小的C程序,它只是从stdin读取数字,在每个循环周期中读取一个。如果用户输入一些NaN,应将错误打印到控制台,并再次返回输入提示。当输入为“0”时,循环应该结束,并将给定正/负值的数量打印到控制台。下面是程序:#include <stdio.h> int main() ...

17得票6回答
使用指向字符的指针和scanf函数

我已经编写了以下代码:int main() { char arrays[12]; char *pointers; scanf("%s", arrays); scanf("%s", pointers); printf("%s&...

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

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