#include <stdio.h>main(){ char b; scanf("%s",&b); printf("%s",*b);}按vc“!”后,弹出个窗口说“该内存不能为read"我愿意是:输入一段字附串,然后再自动打印。请问哪里出原因!!那星"*"号是我不小心打多上去的!
晕死! 你最基本的东西搞错了。 %s确实是读入字符串,但你定义 char b 是读取一个字符。当然会报错。 如果你要读取字符串把 char b; 修改为: char b[80]; 在scanf里把那个 & 去掉 在printf里把那个 * 去掉 就可以了。
#include <stdio.h> main() { char b; scanf("%s",&b); 把%s改成%c (&楼上说删掉,是不能,它是把值付给b,没有&程序执行不了) printf("%s",*b); 把%s改成%c, *去掉 }
溢出了。 char b;是一个字符,不是字符串。scanf()超出了b的内存范围。 用字符数组。 #include <stdio.h> main() { char b[50]; scanf("%s",b); /*把&去掉*/ printf("%s",b); }回复楼下的:楼主要的是“字符串”,不是一个字符。