3

ファイルを読み込んでいて、数字を読み込んだ後、その行の残りの部分にスキップしたい。ファイルの例はこれです

2 This part should be skipped
10 and also this should be skipped
other part of the file

現時点では、このループを使用してこれを解決します。

char c = '\0';
while(c!='\n') fscanf(f, "%c", &c);

しかし、これを行うより良い方法がないかどうか疑問に思っていました。これを試しましたが、何らかの理由で機能しません:

fscanf(f, "%*[^\n]%*c");

これが新しい行まですべてを読み取り、次に新しい行も読み取ることを期待していたでしょう。コンテンツは必要ないので、* 演算子を使用します。ただし、このコマンドを使用しても何も起こりません。カーソルは移動しません。

4

3 に答える 3

1
#include <stdio.h>

int main(){
    FILE *f = fopen("data.txt", "r");
    int n, stat;
    do{
        if(1==(stat=fscanf(f, "%d", &n))){
            printf("n=%d\n", n);
        }
    }while(EOF!=fscanf(f, "%*[^\n]"));
    fclose(f);

    return 0;
}
于 2013-07-29T18:54:45.097 に答える