2017-11-07 7 views
-3

Visual Studioでは、ファイルの宣言がコードブロックとは異なる動作をします。 次のコードは完全に正常に動作します。ブロックですが、Visual Studioでは実行されません。なぜか分かりません。 cstdioをとstdafxのrespectivly 編集1使用Visual C++でコードが実行されていない(コードブロックとVisual Studio)

int n; 
FILE * pFile; 
pFile = fopen ("date.in","r"); 
fscanf(pFile,"%d",&n); 
printf("%d", n); 
return 0; 

// ConsoleApplication3.cpp : Defines the entry point for the console application. 
// 
#include "stdafx.h" 
int d; 
int main() 
{ 
FILE * inFile; 
inFile = fopen("date.in", "r"); 
fscanf(inFile, "%d", &d); 
printf("%d", d); 
return 0; 
} 

は、stdio.hの

+1

そのコードはそのままコンパイルされません。私たちは[mcve]してください。 –

+0

「コンパイルしない」より具体的にしてください。エラーをコピーして貼り付けます。 – molbdnilo

+0

C++タグを復元しました。 Cにはcstdioヘッダーはありませんが、C++にはあります。 (あなたはこのコードがC言語で書かれているとは思うかもしれませんが、私は同意しますが、それはありませんでした) –

答えて

2

問題のブレークポイントライン1061をトリガを使用すると、fopenの結果を確認していないということです、それは失敗しました。プログラムが実行されているときにdata.inが現在のディレクトリにないためです(ただし他のディレクトリもあります)。

プロジェクトプロパティでプログラムを実行するときの現在のディレクトリを指定できます。または、コマンドラインでデータファイルのフルパスを渡し、プロジェクトプロパティでプログラムの引数を指定します。

関連する問題