lzth.net
当前位置:首页 >> C++如何用sCAnF读入string类型的字符串 ? >>

C++如何用sCAnF读入string类型的字符串 ?

用循环,如 int a,b[10];(这里假定字符不超过10个) for(a=0;ascanf("%c",&b[a]);

用循环,如int a,b[10];(这里假定字符不超过10个)for(a=0;a<10;a++)scanf("%c",&b[a]);

在C++中用scanf读入字符串要用格式控制符“%s”,如下代码: # include <stdio.h>void main(){ char s[1000]; scanf("%s",&s); //输入字符串. printf("%s\n",s); //输出字符串.}样例1 输入:ABC 输出:ABC 注意事项:用scanf输入字符串

#include using namespace std;using std::string; int main() { string line; while(cin>>line) cout#includeusing namespace std;using std::string;int main(){string word; while(getline(cin,word)) cout 评论0 0 0

string是一个类,scanf是格式化输入一些基本的类型.cin>>可以输入string,因为>>是重载了可以输入string类型的操作符,所以可以输入string的类型.

canf是c语言的,而string是c++的类,所以不能使用scanf直接读入 可以考虑中转,参考代码如下: #include <iostream>#include <string> using namespace std;int main(){ char buf[100]; scanf("%s", &buf); string str(buf); printf("%s\n", str.c_str()); return 0;}

C语言里没有string,所以scanf中的%s不能输入string.定义成char数组就可以那样弄了.

FILE *fp; fp = fopen("xxx.txt","r"); fprintf(fp,"%s %s %d %s %s %d %d %d %d %d",name,sex,age,num,shool,x,y,k,z,i); fclose(fp); c++中是CFILE

你的意思是输入多余的字符吧?1、因为你用scanf输入的字符都是输入到缓冲区中的,例如你定义了一个只接受一个字符的变量ch,但却输入了多余的字符,这种情况会给编译器造成困扰,因为他并不完全智能,通常采用这种方法释放掉缓冲区内多余的字符输入;例如:2、char ch; scanf("%c", &ch);//假如你不小心输入了多个字符//解决方法如下 while ('\n' != getchar()) {continue;}//这里的原理一不断的用getchar读取缓冲区内的字符,并将其废弃掉,直到遇到你输入的回车符(当然也可以是别的输入结束符);

1 s与&s都表示地址,且值相等.2 s与&s类型不一样,s的类型为char *,&s的类型为char (*)[10],即指向一行有10个字符的指针.3 在scanf("%s",&s);语句中,&s有一个隐含的强制类型转换,即相当于scanf("%s",(char *)&s);

网站首页 | 网站地图
All rights reserved Powered by www.lzth.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com