🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# C语言输入输出 ## 字符输入输出 * getchar / putchar * scanf / printf ``` scanf("%c",&c); //将数据放入变量需要 & 取地址符 ``` ``` // scanf 与 printf 的应用 #include <iostream> using namespace std; int main() { float x; int n; pritnf("input:"); scanf("%f%d", &x, &n); printf("%f%d", x, n); putchar('\n'); return 0; } ``` ``` #include <iostream> using namespace std; int main() { int n; n = 1000; //printf("%f",n); 数据类型不匹配! printf("%f", 1.0*n); //不同进制%x %o printf("%-10d",n); putchar('\n'); /*双精度数据 double n; n = 1.23456789; printf("%.2f",n); //%.2f取小数点后两位 printf("%e",n); //指数形式 putchar('\n'); */ return 0; } ``` #### printf 就讲到这里,不用死记硬背,在用中学习记忆 * 说明: & 是取地址运算符,scanf 的格式控制串里不要加多余的空格或'\n' # C++语言输入输出 * cin / cout 标准输入输出流 ``` #include <iostream> using namespace std; int main() { char c; cin >> c; cout << (char) (c - 32) << end; //由于涉及算数运算,输出时要将数据类型转换为 char /* char c1, c2; cin >> c1 >> c2; cout << (char)(c1 - 32) << (char)(c2 - 32) << endl; */ /* char c1; int c2; cin >> c1; cin >> c2; cout << c1 << c2; //数据输入输出类型要一致 */ return 0; } ``` * cout 格式控制 * setw() / setiosflags(ios::left) / setfill() / setprecision() ``` #include <iostream> #include <iomanip> using namespace std; int main() { cout << setw(8) << 'a' //预留 8 个字符位置 << setw(8) << 'b' << endl; /* setiosflags() 和 setfill() 的效果 cout << setiosflags(ios::left) //靠左 << setfill('*') //填充空白字符为“*” << setw(8) << 'a' << setw(8) << 'b' << endl; */ /*设置浮点数精度 setprecision() double f = 17 / 7.0; cout << setiosflags(ios::fixed) //设置显示类型 << setprecision(3) << f << endl; */ return 0; } ``` * string 处理字符串 * string 不是基本数据类型 ``` #include <string> //不要忘 ``` ``` #include <iostream> #include <string> using namespace std; int main() { string str1; //定义 string 对象 string str2("Hello"); //定义并初始化 string str3 = str2; //定义并初始化 /* string 的输入输出 string str1, str2; str1 = "123", str2 = "abc"; str3 = str1 + str2; //cin >> str1 >> str2; cout << str1 << ' ' << str2; */ return 0; } ``` * 文件的输入输出 * fstream 文件流对象 ``` #include <iostream> #include <fstream> using namespace std; int main() { /* idata.txt 内容 1 2 3 4 5 6 7 8 9 10 */ ifstream ifile("idata.txt"); int sum = 0, value; cout << "data:"; while(ifile >> value) //只要还有数据未读完就一直循环 { cout << value << " "; sum += value; } cout << endl; cout << "sum is:" << sum << endl; return 0; } ```