LoginSignup
2
1

More than 5 years have passed since last update.

C++で‘gets’ was not declared in this scopeエラー

Last updated at Posted at 2018-12-01

コンパイラのバージョン
g++ (Debian 6.3.0-18+deb9u1) 6.3.0 20170516

ロベールのC++教室のweb版第54章を読んでいた。(最終更新日が2000.6.24)
getsを使用したとき下記のエラーが出た

error: ‘gets’ was not declared in this scope

コードは下記

File3.cpp
#include <stdio.h>
#include <string.h>

int main()
{
    FILE* pFile;
    char  buffer[512];
    int   i;

    printf("何か文字列を入力して下さい > ");
    gets(buffer);

    pFile = fopen("fprintf.txt", "w");
    fprintf(pFile, "%d\n", strlen(buffer));
    for(i = 0; buffer[i]; i++)
        fprintf(pFile, "%02X ", (unsigned char)buffer[i]);
    fclose(pFile);

    return 0;
}

getsではなくfgetsを使う。gets使用してはいけないらしい。

File3.cpp
#include<stdio.h>
#include<string.h>

int main(){

    FILE* pFile;
    char buffer[512];
    int i;

    printf("何か文字列を入力して下さい > ");
    fgets(buffer,256, stdin);
    //gets(buffer);

    pFile=fopen("fprintf.txt", "w");
    fprintf(pFile, "%d\n", strlen(buffer));
    for(i=0; buffer[i]; i++)
        fprintf(pFile, "%02X", (unsigned char)buffer[i]);

    fclose(pFile);

    return 0;

}

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1