本文介绍了的fscanf用C不读整行?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是如此愚蠢简单,但我只是有它的问题。

This is so stupidly simple but I'm just having issues with it.

一个文本文件中有一个头,

A text file has a header,

例如,

# 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这些行。

And I'm trying to read each of these lines using 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

所以,它的解析,而不是空白的换行。不知道发生了什么。

So it's parsing the whitespace instead of newlines. Not sure what's happening.

推荐答案

%S 的fscanf 符读词,所以它达到一个空间时,将停止。

The %s specifier in fscanf reads words, so it stops when reaching a space.

使用 与fgets 阅读一整行。

Use fgets to read a whole line.

这篇关于的fscanf用C不读整行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!