scanf printf gets() puts(),cin cout

最近在练机试题,常用的C和C++输入输出如下:

1 scanf 和printf

int a; scanf("%d",&a) ; printf("%d",a);

printf(" ");

double b;scanf("%");

char c; scanf("%c",&c);printf("%c",c);

long int a; scanf("%ld",&a);printf("%ld",a); printf("%ld ",a);

double b;
scanf("%lf",&b);
printf("%lf",b);
float a;
scanf("%f",&a);
printf("%f",a);

scanf("%s",s);//读入字符串,遇到空格就结束,故接受 i love you作为一个字符串,包含空格,需要用
 gets(s);
 是否有空格都可以用printf("%s",s);因为输出已结束的。也可以用下面的puts(s);

读入多个变量

scanf("%d %d",&high,&n);默认是空格分隔

如果scanf中%d是连着写的如“%d%d%d”,在输入数据是,数据之间不可以加逗号,只能是空格或tab键或者回车键——“2 3 4”/“2(按tab)3(按tab)4(按tab)”。若是“%d,%d,%d”,则在输入数据时需要加“,”——“2,3,4”.

也可以控制输出

printf("%d,%d",a,b); 输出a,b

printf("%d %d",a,b); 输出a b

2 gets()和puts()

char s[20]={''};

gets(s),读入一个字符串,回车结束

puts(s);输出字符串。等同于 printf("%s",s);

3 cin和cout就不用说了。很熟悉

只说明一下读字符串

 char s[10]="nfkshf";
cout<<s;
 char s[10];
 cin>>s;//遇到空格结束
 cout<<s;

想要读取i love you ,可以空cin.getline;

char s[N];
 cin.getline(s,N,' ');//读N-1个字符或遇到换行结束。
 cout<<s;

4 while判断输入结束,标准控制台默认 结束

例如:输入 12 34 14 67......89 回车

int a[20];
 while (cin>>a[i]&&cin.get()!=' ')
 {
    i++;
 }
 while (cin>>a[i])//读文件eof结束
 {
  i++;
 }

C 语言:

 char c=' ';
    while(c!=' ')
 {
      scanf("%d%c",&a[i],&c);
      i++;
 }

5 string ,字符串操作可以用string的话就太方便了

4、getline()     // 接受一个字符串,可以接收空格并输出,需包含“#include<string>”

#include<iostream> #include<string> using namespace std; main () { string str; getline(cin,str); cout<<str<<endl; }

输入:jkljkljkl 输出:jkljkljkl

输入:jkl jfksldfj jklsjfl 输出:jkl jfksldfj jklsjfl

和cin.getline()类似,但是cin.getline()属于istream流,而getline()属于string流,是不一样的两个函数

原文地址:https://www.cnblogs.com/Yogurshine/p/3830434.html