可以,这种写法是错误的。
例如:
定义一个字符数组,char a[100];
scanf("%s",&a);也可以用gets(a);//表示把从键盘输入一个字符串赋值给字符串数组a
直接键盘输入‘s’,回车就可以了;这样字符‘s'就储存在字符数组a中了;
//参考代码如下:
#include
int main()
{
int i=0;
char a[200];
gets(a);//输入字符串
puts(a);//输出字符串
return 0;
}
//输入:s
//输出:s
楼上说的都正确,你写的这段代码中,代码运行时,需要在内存中有对应的存放位置,scanf("%s","s");这样写的话,你的s字符没有地方可以存放。所以必须先定义一个变量char s;然后把你输入的字符放入这个定义好的变量中,这个变量在代码运行时,会在内存开辟一块空间给你。
另外,你的意思是输入一个字符,所以应该写为:scanf("%c",&s);
如果需要输入一个字符串的话,那么需要定义一个字符串数组:char s[100] = {0};
scanf("%s",s);
scanf的格式说明符一般用%c,%f,%d 而且输入字符前要加地址运算符& 所以你的方法不行
//可以,但你的写法错误,下面是正确的:
char s;
scanf("%c",&s);
不可以,可以这样做,用char定义 s, 然后再用scanf("%c",&s);输入一个字符s