1

Cでファイルを使用することについての知識がまったくなく、このデータを含むファイルを読み取ろうとしています。

0501100               
051 5100

100 0005  

数値を次のような定数に保存します。

PC   cod  IR      
\/   \/   \/     

050 --- 1 ---- 200
051 --- 5 ---- 100

   Mem[PC]
    \/

100-0005

問題は、私がそれを行う方法がわからないということです。私は自分のファイルを読んで最初のデータをcharバッファーに保存する本から読んだこのコードしか持っていません。少なくともそれは私が思うことですが、残りのデータには続きません。

#include <stdio.h>    
int main(int argc, char **argv)
{
    FILE *fp;    
    char buffer[100];

    fp = fopen("prueba.txt", "r");
    fscanf(fp, "%s", buffer);
    printf("%s", buffer);    
    fclose(fp);    

    return 0;    
 }

そしてこれはの内容ですprueba.txt

0501100               
051 5100

100 0005  

誰か助けてくれませんか?

4

2 に答える 2

1

まず、聞いたことは忘れてくださいfscanf。それは価値があるよりもはるかに面倒です。

次に、「数値を定数に保存する」という意味がわかりませんが、一般に、Cでこの種のことを行う正しい方法は、行ごとにfgets(またはgetline持っている場合)読むことです次に、strsepとを使用して行から個々の番号を抽出しstrtoulます。

第三に、スタイル的に言えば、括弧の内側にスペースを入れることよりも悪いことは 1 つだけです。このコードを読まなければならない次の人に頭痛の種を与えるでしょう。

于 2012-09-13T13:46:30.057 に答える
-1

あなたが今行っていることは、1 つの単語を読み取ることだけです。fscanf を使用して読み取り、%s を使用して最初の文字列を読み取ります。

ファイル内のすべての単語を読みたい場合は、次のようにループする必要があります。

while(feof(fp)==0){

fscanf(fp,"%s",buffer);
*** Do what every action you want to do with your buffer here ***
}
于 2012-09-13T13:46:04.347 に答える