题目描述:
本题是一个很简单的入门题,但还是有一些细节要注意,详细内容放在代码里。
#include<cstdio>
#include<string>
#include<iostream>
using namespace std;
void GetReal(double n){
//%g将小数后面多余的0给去掉
printf("%g\n",n);
}
void GetString(string s){
//既然题目要求我们用printf打印,可以使用c_str()函数来将string类型转化为字符数组来进行打印,这样就可以用printf了
printf("%s",s.c_str());
}
int main(){
//实数要用double类型
double a;
string s;
//用了string,所以用cin输入
while(cin>>a>>s){
//注意一下输出格式
printf("please input a number:\n");
printf("please input a string:\n");
GetReal(a);
GetString(s);
printf("\n");
}
return 0;
}
本题可以注意的是string类型的字符串可以用printf打印,但要使用c_str(),将其转化为字符数组进行打印;其二,%g的意思是用来输出实数,输出格式为f格式或e格式,系统根据数据占宽度m大小,自动选择占宽度较小的某种格式输出,g格式符不输出小数点后无意义的零,因为这里如果直接使用%lf或%f输出,后面会跟着一些无意义的0,%g真好可以把这些0给去掉。