2016-07-15 6 views
2

のcppファイルのすべての行を読む。私の単純なインプリで、Fgets

ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 

と何が間違っている:私は読めない文字を取得し、出力として

Testline1 
Testline2 
Testline3 
Testline4 

:私はCPPファイル

FILE * pFile; 
    fopen_s(&pFile,"test.cpp","r+"); 
    if (pFile!=NULL) 
    { 
     fputs ("fopen example", pFile); 
     char str [200]; 
     while (1) { 
      if (fgets(str, 200, pFile) == NULL) break; 
      puts(str); 
     } 
     fclose (pFile); 
    } 

私text.cppのすべての行を読みたいのは、この含まれています私のコード?

私の考えでは、コードの特別な行を検索し、ファイルが更新のために開いているときに、後

+0

それはどのようなものです: 'fputs( "のfopen例"、PFILE);'?なぜあなたは読んだだけのために開いたファイルに書き込むのですか? – GMichael

+0

ああ、私はr +が読み書き可能にすると思った? – Pepelee

+0

はい、あなたは正しいです。 'r +'は読み書き両方です。それでも、それはファイルなので、読み込むファイルに書き込むべきではありません。 – GMichael

答えて

4

にそれを編集することで、あなたが1をfflushは呼び出す必要が書いた後を読みたいです。あなたがここにファイルへの書き込みの後にそれを呼び出す:

fputs ("fopen example", pFile); 

(ISO/IEC 9899より引用:201X 7.21.5.3をfopen関数7)
ただし、出力は直接であってはなりません出力をファイルに書き込んで(のfseek、 fsetpos、または巻き戻し)

fflush関数またはファイル位置決め機能に 介在コールなし入力続いて、入力をrファイルを読み込む。このコードは、あなたがやろうとしているものを達成する必要があり

+1

;仕事をする。情報@ 2501 – Pepelee

-2

#include <stdio.h> 

#define MAX_LINE 1024 

int main(int argc, char *argv[]) 
{ 
    FILE *pFile; 
    char buf[MAX_LINE]; 

    fopen_s(&pFile, "test.cpp", "r"); 

    if (pFile == NULL) 
    { 
     printf("Could not open file for reading.\n"); 
     return 1; 
    } 

    while (fgets(buf, MAX_LINE, pFile)) 
    { 
     printf("%s", buf); 
    } 

    fclose(pFile); 
} 
+0

のおかげで私のアイデアは、コードの特別な行を検索し、後でそれを編集することです – Pepelee

+0

そして、同じファイルに出力を書く? – inzanez