私はC言語を初めて使っています。私はCで作成した単純なテキストファイルを読み込もうとしています。このファイルは、新規→空のファイル→保存(.txt)を追加すると、テキストファイルにサンプルのスコーキボードが保存され、完全なファイル名はsudokuchar.txtになります。私が作成したテキストファイルからの読み方
私は、ファイルから読み込んで印刷する必要があり、コード、それは次のとおりです。
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fpointer = fopen("sudokuchar.txt", "r");
char input[100];
while(fgets(input,100,fpointer))
{
printf("%s",input);
}
fclose(fpointer);
}
ので、私は何もしてリターンを-1に印刷されないプログラムをコンパイルするとき。私は何かが私がから読もうとしているファイルに間違っていると仮定??もし何かが大いに感謝されるのを助けることができれば。
"私が望む場所" - 実行しているプロセスのアクティブな作業ディレクトリでない限り、投稿されたコードはファイルを見つけることができず、 'fopen'はNULLを返します。それをチェックするのに失敗し、むしろ正しく動作したと仮定して、 'fgets'へのファイルポインタとしてNULLを渡し、*未定義の動作*を呼び出します。いくつかのエラーチェックとランタイムスタートアップの設定の変更が順調に見えるでしょう。 – WhozCraig
ファイルをアクティブな作業ディレクトリに保存するにはどうすればよいですか? – katDouglas
'main()'は 'int'型の関数であり、終了時にシェルにゼロまたは正の* 8ビット*値を返さなければならないことに注意してください(例えば' return 0;エラー時には「255」)。また、 'main'の適切な宣言は、' int main(void){... 'または' int main(int argc、char * argv []){... ' ** argv [] 'の代わりに' 'argv''を使用し、いくつかのコンパイラで受け入れられる追加の移植不可能な引数があります)。これは読み取りの失敗を引き起こしていません( 'fopen'の失敗はおそらくそうです)が、基本を正しくすることが役に立ちます。 –