c++ scanf 怎么用

#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-百度百科

温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-11-17
scanf(输入数据存入内存地址中);
scanf(“%数据类型”,&内存地址);

例:将一个数据存入内存地址a中
如果要输入一个整型的数scanf(“%d”,&a)
如果要输入一个浮点型的数scanf(“%f”,&a)
如果要输入一个字符型的数scanf(“%c”,&a)

多看看书
谭浩强的那本都有

4楼的sdywt胡说
不信自己试试
第2个回答  2007-11-16
一般形式 scanf(格式控制,地址列表);
scanf(“%?1”,&?2);

如果要输入一个整型的数(例如3给a),?1为d,?2为a
如果要输入一个浮点型的数(例如3.0给a),?1为f,?2为a
如果要输入一个字符型的数(例如h给a),?1为c或s,?2为a

这个函数的作用是按a在内存的地址将输入的东东存进去。
第3个回答  2018-06-18

    char *x = NULL;——这样只是声明了一个指针x,它没有指向,是野指针,不能使用,得改成char x[30];,这样编译时就为x分配了30字节,就可以向里输入字符了。

    scanf("input a string:  %s",&x);——其中的input a string:  在输入字符串时必须输入,所以这是不可取的,改成scanf("%s",&x);就可以了,&最好不要,因为x已经是与%s匹配的指针了。

第4个回答  2007-11-17
补充一下:
若输入的是字符数组~含地址的,不能加地址符‘&’,切记!
如:
char str[4];
scanf("%s",str);
相似回答