gpt4 book ai didi

c - 从 C 中的文件读取时使用 fscanf()

转载 作者:行者123 更新时间:2023-12-04 09:23:20 26 4
gpt4 key购买 nike

您好,如果我有一个包含以下文本的文件 (text.txt):

This is a file.

在我的主要方法中,我这样调用 fscanf:

fscanf(fp, "%s", buffer)

然后做

printf("%s", buffer);

其中 fp 是文件指针,缓冲区是一个大小为 100 的字符数组,用于存储我从文件中读取的内容,

我得到输出:

This

我理解原因 - 这是因为 %s 扫描文件直到第一个空格。

如果我调用

fscanf(fp, " is a %s.", buffer)

printf("%s", buffer) 

我得到了输出

file.

我想知道为什么会这样,因为我认为 %s 只会得到 fp 在文件中指向的下一个字符串,所以不应该它是 并不是文件。

最佳答案

fscanf 解析来自文件的格式化数据,当您第一次这样做时:

fscanf(fp, "%s", buffer)

您告诉程序读取第一个单词直到第一个空格,在您的示例中是This

现在指针位于This|位置是一个文件。 所以当你打电话时:

fscanf(fp, " is a %s.", buffer)

您告诉程序将 %s 所在位置的字符串存储到 buffer 中,这意味着您读取了 file。 因为你正在“丢弃” "是一个 "

要阅读,你可以这样做:

fscanf(fp, "%s", buffer)

在您第一次调用 fscanf() 后,您阅读了 This

关于c - 从 C 中的文件读取时使用 fscanf(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59035254/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com