2016-03-22 82 views
1

テキストファイルを読み込んでいて、コンマを区切り記号として使用していますが、以下の行は動作しますが、lnameを出力するときにコンマの後の空白を無視してスペースを表示しません名前の前にホワイトスペースを無視するようにコードを調整するにはどうすればよいですか?テキストのC - sscanfが空白を無視しない

例:

ロブ・スミス、4、12、sometext
あなたは空白を無視したい場合はスティーブ・ジョーンズ、41、286、sometext

sscanf(line, "%[^,],%[^,],%d,%d,%s", fname,lname,&num1,&num2,info); 
+0

ありがとうございました! – BinaryX

+0

'' sscanf( "、" "、"、%[^、]、 "、fname);'はスキャンを停止し、 'fname'に何も保存しないことに注意してください。 IOWsの場合、名前には空白以外の部分が含まれている必要があります。 – chux

答えて

6

ちょうど空白文字を追加:

sscanf(line, " %[^,], %[^,], %d, %d, %s", fname, lname, &num1, &num2, info); 

%d%sの前にスペースが、彼らはすでにリードをスキップするよう要求されません空白文字。先頭の空白をスキップしない書式指定子は、%c,%[および%nです。

フォーマット文字列の空白文字が*scanfの場合、scanfには、空白文字以外の最初の文字が含まれていない限り、空白を何もスキャンするように指示されています。

+0

こんにちはクールガイ、私はすべてのことを学びたい、と私は良い情報源を見つけることができません、あなたはこのすべての良い情報源を教えてくれますか? –

関連する問題