c - C 中的 fscanf 没有读取整行?

标签 c newline scanf

这非常简单,但我只是遇到了问题。

文本文件有一个标题,

例如。,

# Avizo BINARY-LITTLE-ENDIAN 2.1

define Lattice 496 384 470

Parameters {
    AlignTransform {
        slice0000 0 -0 -30 -1,
        slice0001 0 -0 -30 -1,
        slice0002 0 -0 -30 -1,

我正在尝试使用 fscanf 读取这些行中的每一行。
   int i;
   for (  i = 0; i < 10; i++ ) {
     fscanf(fp, "%s\n", buf);  
     printf("%d) %s\n",i,buf);
   }

导致这个
0) #
1) Avizo
2) BINARY-LITTLE-ENDIAN
3) 2.1
4) define
5) Lattice
6) 496
7) 384
8) 470
9) Parameters

所以它解析空格而不是换行符。不知道发生了什么。

最佳答案

我建议您使用 fgets ,但如果你坚持使用 fscanf :

fscanf(fd, "%[^\n]\n", buff);

这将读取整行。

关于c - C 中的 fscanf 没有读取整行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10477551/

相关文章:

c - 这段代码的输出是什么

c# - 超链接被丢弃到新行

java - 如何获得独立于平台的换行符?

防止 CRLF 的 iOS Base64 Lib

c - 以特殊方式从文件中读取 float

创建一个函数; scanf 和 char 问题

c - 如何检查多个变量是否包含简单序列

c - Windows/Linux 上整数数字的巨大 printf float/double 差异

c - 堆栈和 push() 函数

arrays - fscanf 一个数字并将每个数字存储在数组中