#include <stdio.h>
#include <stdlib.h>
int
main (int argc, char *argv[])
{
char *x = NULL;
scanf("input a string: %s",&x);
printf("the key word is %s", x);
}
程序如下 我就想从用户那里的到一个字符串再输出出来,怎么用g++编译之后程序就崩溃了?
scanf用途:从键盘输入数据,从键盘得到字符,放到某个变量里。
格式:scanf()是C语言中的一个输入函数。与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include <stdio.h>。(在有一些实现中,printf函数与scanf函数在使用时可以不使用预编译命令#include <stdio.h>。)它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。
扩展资料:
1、int scanf(const char * restrict format,...);
函数 scanf() 是从标准输入流stdio (标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。
函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。每一个指针要求非空,并且与字符串中的格式符顺次对应。
空白字符会使scanf函数在读操作中略去输入中的一个或多个空白字符。一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。
参考资料:scanf-百度百科
char *x = NULL;——这样只是声明了一个指针x,它没有指向,是野指针,不能使用,得改成char x[30];,这样编译时就为x分配了30字节,就可以向里输入字符了。
scanf("input a string: %s",&x);——其中的input a string: 在输入字符串时必须输入,所以这是不可取的,改成scanf("%s",&x);就可以了,&最好不要,因为x已经是与%s匹配的指针了。