我写了一个简单的程序来读取字符串。
void main()
{
char *str; /*didn't allocate memory*/
scanf(" %s",str);
printf("%s",str);
}
但它导致了分段错误。而下一个不是。
void main()
{
char *str;
scanf(" %c",str);
printf("%c\n",str);
}
有人会介意澄清其实际效果吗?
答案 0 :(得分:0)
您未分配字符串。这意味着你正在写一些你没有要求的地方。
然而你能做的是:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
char c;
while (scanf("%c",&c) && c != '\n')
printf("%c",c);
printf("\n");
return 0;
}
它将读取您在输入中发送的每个字符,直到您按下返回。