1

ファイルから取得した情報を管理するプログラムを作成する必要がありますが、古いTurbo C 3.0を使用しているため、ファイルに書き込もうとするとエラーが発生します。コードは次のとおりです。

#include <conio.h>
#include <stdio.h>

void main(){
clrscr();

int c;
FILE *datos;

datos = fopen("datos.txt","w");

c = fgetc (datos);

printf("%d",c);

fclose(datos);

getch();
}

私がそれを印刷するときはいつでも、私はリターンとして-1を得る。これは本当に単純なことだと思いますが、問題があります。

4

4 に答える 4

1

有効なファイルがあることを確認します。

// use "r" for reading, "w" for writing
datos = fopen("datos.txt", "r");

if (datos)
{
    int ch = fgetc(datos);
    if (ch != EOF)
        printf("%d\n", c);
    else
        printf("End of file!\n");
}
else
{
    printf("Failed to open datos.txt for reading.\n");
}
于 2012-07-02T04:41:25.523 に答える
0

書き込み専用モード("w")でファイルを開きますが、。を使用してファイルを読み取ろうとしていますfgetc

ファイルを読み取り専用モード("r")で開き、データを読み取り、ファイルを閉じ、書き込み専用モードで再度開いて書き込みます。または、読み取りと書き込みの両方をサポートするモードでファイルを開きます。詳細については、Turbo-Cのドキュメントを確認してください。

于 2012-07-02T04:37:14.880 に答える
0

代わりに「読み取り」用にファイルを開いてみてください。

#include <conio.h>
#include <stdio.h>
#include <errno.h>

int main(){

  int c;
  FILE *datos;

  clrscr();
  datos = fopen("datos.txt","r");
  if (!datos) {
    printf ("Open failed, errno=%d\n", errno);
    return 1;
  }    
  c = fgetc (datos);
  printf("%d",c);
  fclose(datos);
  getch();
  return 0;
}

それでも失敗する場合は、エラー番号をお知らせください。

于 2012-07-02T04:43:11.593 に答える
0
'include statements

main(){
  char we;
  char intt;
  ifstream q("xyz.txt");
  for (we=0;we<100;we++){
    q >> intt;
    printf("%c",q);
   }

  getch();

}
于 2013-03-07T16:30:55.957 に答える