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.