1. 程式人生 > >有關輸入輸出流和標頭檔案的問題(在vs中)

有關輸入輸出流和標頭檔案的問題(在vs中)

在vs中編譯程式碼有許多需要注意的地方,其中標頭檔案的問題時最麻煩的,同時它也是最需要“細膩”的地方。
下面就常見的一些問題與大家分享。
編譯環境:vs2015
編寫語言:c++
在vs2015中編寫如下程式碼:
很明顯這是一個有關輸出年齡的問題
輸入年齡然後列印輸出。
但是怎麼會這樣呢?
用了2次cout1次cin1次結果提示都有問題,都是未標明的標示符,而且還有警告跳過了預編譯標頭檔案
如果您遇到了這個問題不要捉急!
下面就是解決方法:
在這程式中,我只改了一個地方就解決了這個問題
沒錯,就是標頭檔案的順序。
我把stafx.h這個標頭檔案放在了前面。為什麼?
這是因為在vs中會進行程式的框架擴充套件(有關這個問題請看我的另一篇又跟標頭檔案的文章)http://blog.csdn.net/schopenhauerzhang/article/details/51113699


在這裡不多說了。
那麼怎麼回事呢?因為把iostream放在後面是正確的程式執行順序。當vs執行時,他會先讀stdafx.h這個標頭檔案,然後再執行iostream這個標頭檔案,否則他就只執行stdafx.h這個標頭檔案了,不執行iostream這句程式碼了。(這裡只是稍加解釋,沒有用標準語言,預編譯指令)
所以提示cout cin endl為未宣告的識別符號。
還有cout 和cin以及endl都是c++的指令(我認為的,沒有用標準語言),所以要小心了。
改了標頭檔案的順序當然就可以運行了。
輸入60輸出60
這個問題在vc6.0中是沒有的,從理論上說只要不是vs這樣要用stdafx.h標頭檔案的話,都不用在意順序的。至少在vc6.0和codeblock和dev上是不用的。(已經測試過了)
因為qt,本人沒有使用,大家可以試一試看看能不能行,歡迎分享!有關標頭檔案的問題歡迎訪問我的部落格
http://blog.csdn.net/schopenhauerzhang/article/details/51113699

也歡迎給我留言或者發郵件![email protected]

相關推薦

有關輸入輸出檔案的問題vs

在vs中編譯程式碼有許多需要注意的地方,其中標頭檔案的問題時最麻煩的,同時它也是最需要“細膩”的地方。 下面就常見的一些問題與大家分享。 編譯環境:vs2015 編寫語言:c++ 在vs2015

C ++基礎 | 格式化輸出檔案輸入輸出File IO檔案Header Files_3

目錄 格式化輸出 檔案輸入輸出(File IO) 標頭檔案(Header Files) 格式化輸出 要格式化資料,我們可以使用轉義字串(Escape Sequence)也稱字元實體(Character Entity)。這些不需要任何額外的庫。 C ++ 轉義字串

java 輸入輸出File簡單解析附android中文亂碼問題解決

java的輸入輸出流是用來幹甚麼的?以下來自百度。點選開啟連結 現在只有檔案輸出輸出流和File的簡單應用,以後再補 輸入輸出不是對機器而言的 輸入輸出是相對於程式來說的。程式執行時是在記憶體中的 輸入是指將硬碟或其他儲存裝置的資料讀入記憶體 輸出是指將記憶體中的資料寫入

Ansi、Unicode、UTF8等編碼字串之間的轉換寫入文字檔案學習……

{    // ansi to unicodechar* szAnsi ="abcd1234你我他";    //預轉換,得到所需空間的大小int wcsLen = ::MultiByteToWideChar(CP_ACP, NULL, szAnsi, strlen(szAnsi), NULL, 0);   

C++ 輸入輸出檔案輸入輸出

輸出到檔案 #include <iostream> #include <fstream> using namespace std; int i = 100; ofstream file("1.txt"); //檔案輸出物件,檔名

關於extern以及原始檔檔案的應用

最近在糾結這個問題,全域性變數的宣告到底應該在原始檔還是標頭檔案中,其實有兩種方法: 緣由:因為 int a;表示的是一個定義,而extern int a;卻是一個宣告 方法一:在a.h中表示全域性變數的宣告:extern int a;       &nbs

VC 6 0新增庫檔案檔案

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

【Keil】Keil5新增源程式檔案

xxx.c就是源程式 xxx.h就是標頭檔案   【源程式新增方法】 雙擊資料夾,例如圖片上的Source,跳出彈窗,選擇需要新增的源程式即可   【新增標頭檔案的方法】 1.首先點選圖片紅框處,或是在資料夾test點選右鍵,再不然點選快捷鍵Alt+F7 2.跳出O

Qt新增庫檔案檔案目錄QCreator轉載學習

在使用QtCreator開發影象處理程式的時候想加入Opencv庫來處理圖形,新增標頭檔案,需要編輯工程資料夾下的.pro檔案在檔案中新增以下內容,即可包含標頭檔案的資料夾:   INCLUDEPATH +=D:\OpenCV2.0\vc2008\include

Qt Creator 配置第三方庫檔案

引入第三方庫 opencv 首先安裝opencv,前面部落格opencv已經介紹如何安裝了 D:\opencv\build\x64\vc14\lib\opencv_world310.lib    動態庫(存放動態連結庫的地址) D:\opencv\build\include

c語言編譯過程檔案<>與""的區別

編譯過程:   預處理--編譯--彙編--連結 預處理:用於將所有#include標頭檔案及#define等巨集定義替換成真正的內容,預處理後的得到的仍然是文字檔案,但體積會大很多。 編譯:將預處理之後的程式轉換成特定彙編程式碼的過程

C++ 基礎使用vs2015封裝c++生成.dll檔案、.lib檔案、.h檔案後,給另一個工程使用:使用前,需配置檔案.h靜態庫.lib 動態庫.dll 專案屬性

一、簡介 我是一個認真的人,要麼不寫,要麼我就把步驟、截圖、程式碼,一 一 附上,方便大家參考學習。 1、為什麼要生成DLL和lib?      就是為了給VS工程呼叫(比如C#呼叫、C++工程)。 2、C#為什麼要呼叫DLL和lib? C++寫的程

C語言輸入輸出緩衝區重點詳解

導讀: C語言中我們用到的最頻繁的輸入輸出方式就是scanf()與printf()。 scanf(): 從標準輸入裝置(鍵盤)讀取資料,並將值存放在變數中。 printf(): 將指定的文字/字串輸出到標準輸出裝置(螢幕)。注意寬度輸出和精度 輸出控制。 C語言藉助了相應的緩衝區

QT增加連結庫檔案搜尋目錄相對目錄

     QT開發的時候,需要增加連結的動態庫或者靜態庫,或者搜尋的標頭檔案。正常情況下,使用相對目錄是最好的。下面是常用的方法:     1 增加庫依賴。如下,OUT_PWD表示QT編譯後的輸出目錄。比如Debug或者Release目錄。後續釋出的時候,把so庫或者靜態庫放

linux下g++ 編譯時動態庫靜態庫的連結檔案問題

原來編譯的時候都是用的很隨意,沒用系統的總結一下,這幾天在編譯的時候遇到一些下問題,於是就總結一下,省得過幾天又給忘了。 1.動態庫和靜態庫簡介 靜態庫在程式連結的時候會自動的連結到程式裡,所以一旦編譯完成,靜態庫就不需要了,靜態庫以.a結尾。  動態庫在編譯時不會被連線到目的碼中,而是在程式執行

《CMake實踐》筆記三:構建靜態庫與動態庫 及 如何使用外部共享庫檔案

五、靜態庫與動態庫構建 讀者雲,太能羅唆了,一個Hello World就折騰了兩個大節。OK,從本節開始,我們不再折騰Hello World了,我們來折騰Hello World的共享庫。 本節的任務: 1、建立一個靜態庫和動態庫,提供HelloFunc函式供

(轉)VC 6.0新增庫檔案檔案

https://blog.csdn.net/yusiguyuan/article/details/12649665  附加標頭檔案包含 VC6.0中: VC6.0預設include包含路徑:Tools>Options>Directories>Include f

C++對於類來說檔案.h原始檔.cpp都應該寫些什麼 類的常規建立

    寫類的宣告(包括類裡面的成員和方法的宣告)、函式原型、#define常數等,但一般來說不寫出具體的實現。     在寫標頭檔案時需要注意,在開頭和結尾處必須按照如下樣式加上預編譯語句(如下): #ifndef CIRCLE_H#define CIRCLE_H//你的程式碼寫在這裡#endif

《CMake實踐》筆記三:構建靜態庫(.a) 與 動態庫(.so) 及 如何使用外部共享庫檔案

五、靜態庫與動態庫構建 讀者雲,太能羅唆了,一個Hello World就折騰了兩個大節。OK,從本節開始,我們不再折騰Hello World了,我們來折騰Hello World的共享庫。 本節的任務: 1、建立一個靜態庫和動態庫,提供HelloFunc函式供其他程式程式設計使用,Hell

編寫一個可變引數的C函式——檔案stdarg.h巨集va_start ,va_argva_end的應用

我們在C語言程式設計中會遇到一些引數個數可變的函式,例如printf()這個函式,它的定義是這樣的:int printf( const char* format, ...);它除了有一個引數format固定以外,後面跟的引數的個數和型別是可變的,例如我們可以有以下不同的呼叫方