Maison > Questions et réponses > le corps du texte
如题,我在UBUNTU系统下利用记事本编写了一段C程序,程序如下:
main() { char h="Hello World!"; printf("%c\n",h); }
利用终端查看,命令如下:gcc -g -Wall hello.c -o hello.c
结果出现这样的错误:
hello.c:1:1: 警告: 返回类型默认为‘int’ [-Wreturn-type] hello.c: 在函数‘main’中: hello.c:3:9: 警告: 初始化将指针赋给整数,未作类型转换 [默认启用] hello.c:4:2: 警告: 隐式声明函数‘printf’ [-Wimplicit-function-declaration] hello.c:4:2: 警告: 隐式声明与内建函数‘printf’不兼容 [默认启用] hello.c:5:1: 警告: 在有返回值的函数中,控制流程到达函数尾 [-Wreturn-type]
这个是什么问题呢?如何才能看到文字输出?
ringa_lee2017-04-21 10:57:21
#include <stdio.h>
int main(int argc,char *argv[])
{
char str[] = "hello world";
printf("%s\n",str);
return 0;
}
La déclaration implicite est due au fait que le fichier d'en-tête n'est pas inclus : stdio.h
Votre paramètre printf
utilise %c
(caractère), et la chaîne que vous souhaitez imprimer doit utiliser %s
. Si vous souhaitez imprimer %c
, vous pouvez utiliser printf("%c",str[0]);
main
Il n'y a pas de valeur de retour définie dans la fonction, la valeur par défaut est nt
et il n'y a pas de valeur de retour à la fin du programme, donc il invite
Attention : Dans une fonction avec une valeur de retour, le flux de contrôle atteint la fin de la fonction [-Wreturn-type]
大家讲道理2017-04-21 10:57:21
#include<stdio.h> int main() { const char *h="Hello World!"; printf("%s\n",h); return 0; }
ringa_lee2017-04-21 10:57:21
En fait, je pense que le message d'erreur est très évident. Quant à %d, %c, %s, etc., la personne qui pose la question devrait le comprendre lui-même.
Si vous ne trouvez pas le problème après avoir lu ce message d'erreur, vous devez y réfléchir.
大家讲道理2017-04-21 10:57:21
J'ai quelques suggestions :
PHP中文网2017-04-21 10:57:21
%c est le caractère de sortie
%s est la chaîne de sortie
Le code est comme indiqué ci-dessus
怪我咯2017-04-21 10:57:21
Il y a une erreur dans le programme. Pour utiliser des chaînes en C, utilisez des tableaux