我必须打印两个不同的字符串,但它崩溃了! 所以,我认为我刚刚在编程方面失败了,但我是新人,我不知道是什么!这是代码:
#include <stdio.h>
#include <conio.h>
int main(void)
{
char nome1,nome2;
int num1,num2;
printf("inserisci il nome del primo giocatore ");
scanf("%s",&nome1);
printf("inserisci il nome del secondo giocatore ");
scanf("%s",&nome2);
printf("i giocatori sono: %s,%s", nome1,nome2 );
getch();
return 0;
}
最佳答案
您需要为您定义的变量nome1
、nome2
分配一些存储
所以,不要这样说:
char nome1,nome2;
为这些变量分配一些内存
char nome1[100],nome2[100];
此外,为了防止缓冲区溢出,请使用 fgets而不是 scanf
:
fgets(nome1, 100, stdin);
所以,你的代码是这样的:
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main(void)
{
char nome1[100],nome2[100];
int num1,num2;
printf("inserisci il nome del primo giocatore ");
fgets(nome1, 100, stdin);
printf("inserisci il nome del secondo giocatore ");
fgets(nome2, 100, stdin);
strtok(nome1, "\n"); //removing the newline.
printf("i giocatori sono: %s,%s", nome1,nome2 );
getch();
return 0;
}
关于C语言编程 printf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39708576/