2011-02-02 15 views
1

私が読み込んだデータファイルを、char配列の配列に格納しました。ファイル内の各行に1つのchar配列があります。個々の行を処理します。私はしかし、これを行う方法はわかりません。Cの文字列からデータを読み込む(scanfのように)

は私のように各ラインを読み取るように:

私は%D \ T%D \ T%D \ T%D \ T%Dとしてフォーマットされている各ラインのデータを読み出すために必要
/* Read the whole file into an array */ 
char read_lines[FILE_LENGTH][FILE_WIDTH]; 
for(i=0;i<FILE_LENGTH;i++) { 
    fscanf(data_file, "%[^\n]", read_lines[i]); 
    fscanf(data_file, "%[\n]", dump); 
} 

scanf関数に特定の変数をどのように読み込むのかは分かりません。私はfscanf()がファイルから読み込み、scanf()がユーザー入力から読み込むことを知っています。変数から読み込む関数はありますか?私は本当に私が研究の公平なビットを行ってきたC.で同等の操作を行う方法を見ることができない

read_lines = open('file.txt').readlines() 
for line in lines: 
    i = lines.index(line) 
    first[i], second[i], third[i], forth[i], fifth[i] = line.split('\t') 

私は、Pythonの背景から来て、Pythonで、私は次のコードを使用します私は何か有用なものを見つけることができませんでした。どんな助けもありがとう!

ありがとうございます!

答えて

2

おそらくsscanfをチェックしてください。それはいとこのようなものですscanffscanf代わりに文字列を取ります。上記のリンクからの抜粋です。

のsscanf関数は、printf関数と関連する関数、と同様に、それはテンプレート文字列と関連する引数の一連を受け入れ、その後、入力を読み込むための文字列を受け付けます。 printfのような変換指定子を使用して、入力を読み込んでいる文字列にテンプレート文字列を一致させようとします。あなたは

は、例えば

文字列を分割する[manページを読む] strtok関数を使用することができます

+0

Ahhhh!ありがとう、sscanfは私の検索に出てこないようでしたが、これは私が必要とするものです。 – Durand

0
+0

これは非常に便利ですが、将来はこれを使用しますが、sscanf()を使用する方がCの方が簡単だと思うのに対し、split()はpythonで使う方が簡単です。 – Durand

+0

@DurandあなたはPythonで同様のことをすることができます - あなたが与えたPythonコードは自動的にフィールドを整数として解釈します –

+0

ええ、あなたが使用する必要があります: first [i]、second [i]、third [i ]、for [i]、five [i] = [int(i)for line.split( '\ t')] – Durand

関連する問題