c++各种输入输出(文件输入输出,标准输入输出,一些字符串)

文件输入输出

  1.输入输出重定向

freopen("input.txt","r",stdin);
//该语句使得所有读键盘输入的函数都从文件input.txt读入,例如scanf。
freopen("output.txt","w",stdout);
//该语句使得所有输出到屏幕的函数都输出到文件output.txt,例如printf。

  2.fopen


#include<cstdio>
#define INF100000000
int main() {
  FILE *fin,*fout;//文件指针
  fin = fopen("data.in","rb");
  fout = fopen("data.out","wb");
  int x,n=0,min=INF,max=-INF,s=0;
  while(fscanf(fin,"%d",&x)==1) {
    s+=x;
    if(x<min)min=x;
    if(x>max)max=x;
    n++;
  }      
  fprintf(fout,"%d %d %.3f\n",min,max,(double)s/n);
  fclose(fin);
  fclose(fout);
  return 0;
}

 3.字符数组

        

fgetc(fin)//从打开的文件fin中读取一个字符,在标准输入中等价于getchar();
fgets(buf,maxn,fin);//读取完整的一行放在字符数组buf里,这个函数读取不超过
                    //maxn-1个字符,然后再末尾添上结束符\0,因此不会出现越
                    // 界,读到换行符工作停止,没有读到字符时返回NULL    

 

 

标准输入输出

      1.cin/cout

#include<iostream>
int main(){
    int a; 
    cin>>a;  //(1)cin语句把空格和换行符作为分隔符,不输入给变量
    cout<<a;
    return 0;
}

    2.scanf/printf

scanf("格式控制字符串",输出列表);
printf("格式控制字符串“,地址列表);

   

   3.字符串的输入输出

      字符数组:

   (1)                     

#include<cstdio>
#include<cstring>
int main(){
     char s[20];
     scanf("%s",s);//s前不需要加地址,因为数组名本身就指向数组首元素   2.遇空格结束
     printf("%s",s);
     return 0;
}

   (2)

 

getchar();  //从标准输入中读取下一个字符,返回类型为int型,为用户输入的ASCII码

putchar(); //向终端输出一个字符

 

 

   (3)

  

puts(s);//输出字符串s和一个换行符
gets(s);//读取一行字符存入s //由于没有指明读取的最大字符数,因而存在缓冲区漏洞,在C11标准中,该函数已被删除.

  (4)

 

#include <iostream> 
using namespace std; 
int main () 
{ 
    char s[20]; 
    cin.getline(s,5,'\n'); //读取一行,5是最大的读取的字符数(包含结束符'\0'),\n是分隔符,可以省略,即cin.getline(s,5);
    cout<<m<<endl; 
}

  (5)

sprintf(s,"%d",N)1.将整数N转化成字符串s.
sscanf(s,"%d",&N)2.字符串s转换成数字N.

 

    

  

posted @ 2018-08-22 00:35  foxc  阅读(3711)  评论(0编辑  收藏  举报