由一道筆試題而想起的C/C++格式化輸入輸出的筆記

       不久前,在做一道奇安信的筆試題的過程中發現C/C++的格式化輸入輸出的知識記得不太清楚了,現在當做筆記複習一遍(反正這塊C++是兼容C的)。

       當時那道題目比較簡單,但是差點因爲不記得格式化輸入輸出而翻了車,先看看我的題解(題幹不記得了,反正本文重點不是這道題的解法,畢竟不難)。

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

bool Equal(vector<int>& v) {
	if ( v.size() < 9) return false;
	int s1 = v[0] + v[1] + v[2] + v[3];
	int s2 = v[3] + v[4] + v[5] + v[6];
	int s3 = v[6] + v[7] + v[8] + v[0];
	if ( s1 == s2 && s1 == s3) return true;
	
	return false;
}

int main() {
	vector<int> nums;
	int x = 0, count = 9;
	char c = ' ';
	for(int i = 0; i < 9; i++) {
		scanf("%d %c", &x, &c); //可以看到這裏的格式化輸入scanf的取地址符&,
                                        //注意,格式化輸出printf沒有取地址符&
		nums.push_back(x);
	}
	
	
	if ( Equal(nums) ) cout << "yes" << endl;
	else cout << "no" << endl;
	
	return 0;
}

       可以看到上邊代碼中註釋提到的格式化輸入輸出,除了注意取地址符&的有無之外還要注意" "內是沒有括號分隔的。另外不久後遇到的一題是要求保留輸出5位小數的,當時最後纔想起來想出來是printf("%.nf", 變量名) 其中n即爲需要保留的位數,保留5位的話就是printf("%.5f", 變量名) 。關於C/C++更多的內容可以看教材,因爲書在學校,疫情期間無法回校拿書,所以可以參考這篇博客:https://blog.csdn.net/xia7139/article/details/17028001。只需要注意在這塊領域C++標準是兼容C標準的就行。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章