"error C2080: 'fopen_s': 'auto' の型は、単一の初期化式からのみ推測できます" に関する原因と対処

このコンパイルエラーの原因と対処に関して説明します。

スポンサード リンク

Microsoft Visual C++にて以下のソースでコンパイルエラーが発生します:

コンパイルエラーメッセージ:
error C2080: 'fopen_s': 'auto' の型は、単一の初期化式からのみ推測できます

ソース(バグ有り):

#include <stdio.h>
#include <stdlib.h>

int main() 
{
FILE *fp;
char file_read_buffer[256];
//ファイルを読み込み専用で開く
if ([fopen_s(&fp,"c:\\temp\\test.txt", "r")) != 0)
{
printf("ファイルのオープンに失敗しました。\n");
return 1;
}
//ファイルを1行ごと読み込み、標準出力に出力する
while (fgets(file_read_buffer, 256, fp) != NULL )
{
printf("%s", file_read_buffer);
}
fclose(fp);
return 0; }


原因:
今回の原因は単純な誤りでした。if文 の書式に誤りがあります。

対処:
書式を見直します


ソース(修正済み):

#include <stdio.h>
#include <stdlib.h>

int main() 
{
FILE *fp;
char file_read_buffer[256];
//ファイルを読み込み専用で開く
if ((fopen_s(&fp,"c:\\temp\\test.txt", "r")) != 0)
{
printf("ファイルのオープンに失敗しました。\n");
return 1;
}
//ファイルを1行ごと読み込み、標準出力に出力する
while (fgets(file_read_buffer, 256, fp) != NULL )
{
printf("%s", file_read_buffer);
}
fclose(fp);
return 0; }

スポンサード リンク



[コンパイルエラーコード、メッセージに戻る]