如何用C语言读取C中的整行文本

时间:2015-03-04 14:09:59

标签: c

对于在学校的任务,我必须让游戏变得流氓。我们加载房间的方式来自一个看起来像这样的文件:

10x12 de4 ds6 p9,8 g7,5 h1,1 M8,9
24x12 ds5 ds6 p9,8 g7,5 h1,1 M8,9
9x16 ds3 ds6 p9,8 g7,5 h1,1 M8,9
18x17 dn9 ds6 p9,8 g7,5 h1,1 M8,9
5x5 de4 ds6 p9,8 g7,5 h1,1 M8,9
16x11 dw7 ds6 p9,8 g7,5 h1,1 M8,9

每个房间都有一个尺寸,然后是所有元素及其后面的位置,以空格分隔。当我读到它时,我无法获得每一行(10x12 de4 ds6 p9,8 g7,5 h1,1 M8,9),我一次只有一个元素(10x12然后是de4然后是ds6,依此类推)。有没有办法在行结束前进行读取并将其保存在 char ** rooms变量?

1 个答案:

答案 0 :(得分:3)

首先,您必须知道每行末尾都有一个字符' \ n'。 打开文件时,它会创建一个位于文件开头的光标。 当您读取一个字符时,光标会一直移动直到它到达文件的末尾,由状态代码“EOF”表示。 (-1值)。

要获得一行,策略将是阅读所有字符,直到您达到' \ n'。再做一遍,直到你达到'EOF'。 (小心,因为如果只有一行,你可能没有' \ n')

现在如何使用代码:

使用以下功能

fopen() //打开文件

getline() //读一行

幸运的是,这两个功能已足够,因为它们可以处理所有事情(' \ n',' EOF',光标......)