#include<stdio.h>
void main()
{
char name[20];
printf("Enter your name : ");
scanf("%s",&name);
printf("your name is %s\n",name);
getch();
}
なぜDevC++コンパイラはgetch()
を宣言するように頼んでいますか?getch()関数の宣言
#include<stdio.h>
void main()
{
char name[20];
printf("Enter your name : ");
scanf("%s",&name);
printf("your name is %s\n",name);
getch();
}
なぜDevC++コンパイラはgetch()
を宣言するように頼んでいますか?getch()関数の宣言
getch
は、標準化された機能ではありませんので。したがって、stdio.h
にはありません。プラットフォームによっては、conio.h
で定義されています。コンパイラは、使用する前に宣言がgetch
に見えないため、不平を言っています。
しかし、あなたは移植をしたい場合は、標準機能にあなたの簡単なプログラムを制限する必要があります。
stdio.h
同等のgetchar
です。
私はまた、あなたのプログラムがc++慣用的ではないことを追加したいと思います。 C++コンパイラでコンパイルされているのはcです。
'getch()'と 'getchar()'には違いがあります。後者は戻りキーを使用する必要があります。 'getch()'はAFAIKしません。 –
@JonathanLeffler - 真。しかし、OPの目的は、ユーザの「任意のキー」を待ってプログラムを一時停止することです。私は彼らが同等だと思う。 – StoryTeller
まあ、それは非常に簡単です...あなたは機能を使用しようとしているが、あなたはその署名が何であるかをコンパイラに語っていません。両方getch()
とgetche()
機能がconio.h
ヘッダで宣言されているので、コンパイラは、関数を宣言しませ文句。要するに、あなたが追加する必要があります。
#include <conio.h>
もう一つは、あなたが言ったので、あなたがDEVC++を使用していたということです、DEVC++は、右のコンソールが終了する前に、あなたのプログラムを一時停止しないようgetch()
機能を使用する必要はありません。
あなたのコードで 'gets'関数はどこですか?そして、これを尋ねる前に 'getch 'が何であるかを調べましたか? –
[C++ 11](https://en.wikipedia.org/wiki/C%2B%2B11)(少なくとも)以前の標準ではありません。 http://stroustrup.com/Programming/を読んで、最近の[GCC](http://gcc.gnu.org/)や[Clang/LLVM](http:// clang .llvm.org /)であり、どちらも[フリーソフトウェア](https://en.wikipedia.org/wiki/Free_software)コンパイラです)。 –
コードが完全にCの場合、なぜこのタグがC++ですか? –