Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
fscanf读取和保存_C_File - Fatal编程技术网

fscanf读取和保存

fscanf读取和保存,c,file,C,File,我不知道如何在C中使用文件,我正试图读取一个包含这些数据的文件 050 1100 051 5100 100 0005 050-1-200 051-5-100 Mem[PC] \/ 100-0005 问题是我不知道怎么做。我只从一本书中读到了这段代码,它读取我的文件并将第一个数据保存到一个char缓冲区,或者至少我认为它是这样做的,但它不会继续处理其余的数据 包括 int main argc,字符**argv { 文件*fp;

我不知道如何在C中使用文件,我正试图读取一个包含这些数据的文件

050 1100 051 5100 100 0005 050-1-200 051-5-100

   Mem[PC]
    \/
100-0005

问题是我不知道怎么做。我只从一本书中读到了这段代码,它读取我的文件并将第一个数据保存到一个char缓冲区,或者至少我认为它是这样做的,但它不会继续处理其余的数据

包括 int main argc,字符**argv { 文件*fp; 字符缓冲区[100]; fp=fopenprueba.txt,r; fscanffp,%s,缓冲区; printf%s,缓冲区; fclosefp; 返回0; } 这是prueba.txt的内容:


有人能帮我吗?

您现在正在做的只是读取一个单词,您使用fscanf读取,使用%s读取它看到的第一个字符串

如果要读取文件中的所有单词,必须按如下方式循环:

PC   cod  IR      
\/   \/   \/     
while(feof(fp)==0){

fscanf(fp,"%s",buffer);
*** Do what every action you want to do with your buffer here ***
}

首先,忘了你听说过fscanf。这是远远超过它的价值麻烦

其次,我不知道将数字保存为常量是什么意思,但一般来说,在C中执行此类操作的正确方法是使用或逐行读取,然后使用and从行中提取单个数字

第三,从风格上讲,只有一件事比在括号内加空格更糟糕,那就是在括号内和/或括号周围加空格和逗号。你会让下一个必须阅读此代码的人头疼。

while!feoffp{read;process;}是一种反模式,因为feof只有在尝试读取文件末尾之后才变为真,而不是仅在到达文件末尾时变为真。因此,您将得到一个失败的读取操作,而代码不准备处理该操作。
while(feof(fp)==0){

fscanf(fp,"%s",buffer);
*** Do what every action you want to do with your buffer here ***
}