首先,在 VS2017 中,使用 C 語言的輸入函數 scanf(),程序會報錯,解決辦法是:
- 在代碼的最頂行寫入 #define _CRT_SECURE_NO_WARNINGS
- 屬性 —> C/C++ —> 預處理器,右側 預處理器定義 右側添加上:_CRT_SECURE_NO_DEPRECATE
3. 在新建項目時取消勾選“SDL檢查”
4. 若項目已建立好,在項目屬性裏關閉SDL也行
5. 在項目屬性----C/C++ ----命令行中添加:/D _CRT_SECURE_NO_WARNINGS
其次,在調用 printf() 與 scanf() 的時候不一定要包含 #include<stdio.h>
#include<iostream>
#include<string>
using namespace std;
int main(){ // 這些 C++ 基礎頭文件即可
char str[100];
int i;
printf("Enter a value :");
scanf("%s %d", str, &i);
printf("\nYou entered: %s %d ", str, i);
printf("\n");
system("pause");
}
最後,簡單介紹一下 printf() 與 scanf() 的用法
printf() 的用法:printf(“格式控制字符串”,輸出參數一,輸出參數二);
printf("You entered: %s %d ", str, i);
格式控制字符串包含:格式控制說明,普通字符
格式控制說明:按指定的格式輸出數據,包含以 % 開頭的格式控制字符,
不同類型的數據採用不同的格式控制字符( int 型用 %d , float 和 double 用 %f )
普通字符:在輸出數據的時候,按照原樣輸出的字符
如:"You entered: %s %d " 中的 You entered:
scanf() 的用法:scanf(“格式控制字符串”,輸入參數一,輸入參數二);
格式控制字符串包含:格式控制說明,普通字符
格式控制字符串:同 printf() ( int 型用 %d , float 用 %f , double 型用 %lf )
普通字符:同 printf() ,但輸入的參數是變量的地址,所以要在變量前面加&)
- 格式控制說明
%d 十進制有符號整數
%u 十進制無符號整數
%f 浮點數
%s 字符串
%c 單個字符
%p 指針的值
%e 指數形式的浮點數
%x, %X 無符號以十六進制表示的整數
%0 無符號以八進制表示的整數
%g 自動選擇合適的表示法 - 一些特殊規定字符
\n 換行
\f 清屏並換頁
\r 回車
\t Tab符
\xhh 表示一個ASCII碼用16進表示,
其中hh是1到2個16進制數
1.printf(“fahr=%d,celsius=%d\n” ,fahr,celsius);
2.printf(“enter x(x>=0):\n”);
3. printf(“y=f(%f)=%.2f\n”,x,y);
%f指定以小數形式輸出浮點型數據,保留的是6位小數,而%.2f則指定輸出的時候保留2位小數
4. printf(",%04d",D[i]);
%04d 表示在輸出一個小於4位的數值時, 將在前面補0使其總寬度爲4位。
5.scanf("%lf",&x);//讀取輸入
調用scanf()函數輸入數據,變量名 x 前面要加 &, %lf 中的 l 是 long 的首字母,
scanf() 函數的輸入參數必須和格式控制字符串中的格式控制說明相對應,並且它們的類型,個數和位置要一一對應。
scanf("%d%d%lf",&x,&y,&z)表示輸入的x是int型的,y是int型的,z是double型的,這個就是一一對應