Visual Studio 2019 (VS2019) c++使用指南 (以及代碼片段調校,和關於處理萬能頭文件和scanf、getch、kbhit編譯錯誤的問題)

當你看完這篇博文,別忘了給初中生博主一個小小的贊喲~~
注:有關Microsoft Visual Studio 2019詳情請訪問此網址VS2019
想了解快捷鍵的朋友請戳這裏—>快捷鍵篇

板塊一:Visual Studio 2019 安裝及配試指南

首先,進入VS2019官網 官網.下載VS2019,下載完畢後,會有這樣一個界面:在這裏插入圖片描述
選擇你自己語言的插件包(這裏我選的是自己的語言c++)以及Visual Studio 拓展開發插件包,語言包就選擇中文就行了(根據自己的喜好來),然後點擊安裝就可以了。安裝完畢後,打開VS2019,開始的界面會持續5~10秒,請不要擔心。進入之後,會有這樣一個界面:在這裏插入圖片描述
點擊創建新項目,然後點擊空項目,在上方選擇自己的編程語言,編譯系統就選擇windows所有平臺,項目類型就選所有項目類型,再點擊下一步。在這裏插入圖片描述
點擊下一步後是這樣一個界面,可以選擇項目名稱或位置,這裏我們就按照它默認的來,然後再點擊創建,我們的第一個項目就新建成功了。在這裏插入圖片描述
新建成功後,是這樣的一片空白,這時,我們只需要右鍵點擊右邊資源管理器的源文件文件夾,選擇添加,再選擇新建項,就可以了。然後選擇c++文件,名稱就填你自己的文件名稱.cpp,那麼點擊了添加後,就正式創建創建成功了。在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
創建成功後,你就可以輸入自己的代碼,然後點擊上方的本地Windows調試器,就可以編譯運行了。如果有不滿意它默認字體和主題的小夥伴,可以點擊菜單欄的工具–>選項–>字體和顏色(調字體)以及常規(調主題)進行修改,這裏我使用的是consolas字體和深色主題,有不滿意字體大小的還可以點擊ctrl+滾動鼠標滾輪調節。至此,我們的安裝配試就告一段落了在這裏插入圖片描述

板塊二:關於代碼片段的snippet文件的編寫

當你安裝配試完畢後,你會發現:這個軟件爲什麼不能像Dev-C++一樣在編輯器選項裏添加初始的代碼片段,這軟件跟Dev-C++相比有什麼優勢呢?別急,我們是有辦法的,首先,你需要了解snippet文件是什麼東東:SNIPPET file is a Visual Studio IntelliSense Code Snippet. IntelliSense Code Snippets are XML files with a .snippet file name extension that adhere to the IntelliSense Code Snippet XML schema.翻譯後就是:代碼片段文件是一個Visual Studio智能感知代碼片段。IntelliSense代碼片段是擴展名爲. Snippet的XML文件,它遵循IntelliSense代碼片段XML模式。那麼看不懂沒關係,我也不是很明白,但我們只要知道它是一種XML文件(注:XML文件),然後瞭解它的格式就可以編寫了,這裏我們可以參考一下VS2019自帶的snippet文件,點擊菜單欄中的工具–>代碼片段管理器,然後在語言中選擇Visual C++,點擊下面框框裏的Visual C++,裏面就有很多代碼片段的snippet文件,這時我們以for循環的for.snippet爲例,在框框裏點擊它,複製他的文件地址,在搜索裏搜索一下,再打開就行了。打開後,是這樣的:

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
	<CodeSnippet Format="1.0.0">
		<Header>
			<Title>for</Title>
			<Shortcut>for</Shortcut>
			<Description>for 循環的代碼片段</Description>
			<Author>Microsoft Corporation</Author>
			<SnippetTypes>
				<SnippetType>Expansion</SnippetType>
				<SnippetType>SurroundsWith</SnippetType>
			</SnippetTypes>
		</Header>
		<Snippet>
			<Declarations>
				<Literal>
					<ID>type</ID>
					<Default>size_t</Default>
					<ToolTip>控制變量類型</ToolTip>
				</Literal>
				<Literal>
					<ID>index</ID>
					<Default>i</Default>
					<ToolTip>索引</ToolTip>
				</Literal>
				<Literal>
					<ID>max</ID>
					<Default>length</Default>
					<ToolTip>最大長度</ToolTip>
				</Literal>
			</Declarations>
			<Code Language="cpp"><![CDATA[for ($type$ $index$ = 0; $index$ < $max$; $index$++)
		{
			$selected$ $end$
		}]]>
			</Code>
		</Snippet>
	</CodeSnippet>
</CodeSnippets>

然後這段代碼是什麼意思呢,我們來解釋一下:

  1. Title,Author和Description,顯示在Code Snippets Manager中。
  2. Shortcut,在對應語言的源程序文件中輸入Shortcut內容並按TAB鍵,插入對應的snippet code。
  3. Literal,定義在snippet中可編輯替換的代碼片段,ID是snippet中唯一標識符,在Code中ID兩側用$符號表示可以被編輯替換,Default是默認顯示的內容。
  4. Language,表明代碼類型,如CPP表示C++。
  5. endend表示snippet代碼插入後光標位置。
  6. Ctrl+K,Ctrl+B,Imports導入.snippet。

看不懂?沒關係,我們來看一下for循環的案例,首先,前面的不用管,主要是從title開始,那麼title裏寫的就是這個代碼片段的名稱‘for’,而shortcut就表示輸入‘for’再按tab,就可以顯示此代碼片段,接着description就是對此代碼片段的描述,然後直接跳到declarations,這有點類似定義變量,裏面括起來的是定義的變量,然後裏面的literal就是一個變量,裏面包按三個參數,id、default和tooltip,id就是此變量的名稱,default是此變量在代碼中默認的顯示內容,比如for循環的代碼裏,變量type在代碼中的默認顯示就是size_t,以此類推,最後tooltip可以看做是對此變量的描述。最後,code language就是此代碼的語言,比如我就是cpp,然後在後面<![CDATA[![CDATA[ ]]>最裏面的中括號裏輸入你的代碼片段就行了,其中變量要用$$包起來他的變量名,然後就大功告成了。在這裏插入圖片描述
在這裏插入圖片描述
那麼知道了如何寫一個snippet文件,我們就要看看在VS2019裏怎麼操作。首先,和板塊一樣,新建一個文件,就是右鍵點擊源文件,點擊添加,再點擊新建項,但是要新建的,是一個XML文件,在Visual C++的web裏面,點擊XML文件,然後添加,這裏我已經給大家寫好了我的源代碼初始頭文件的代碼,大家輸入進去就可以了

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
	<CodeSnippet Format="1.0.0">
		<Header>
			<Title>ccode</Title>
			<Shortcut>ccode</Shortcut>
			<Description>c++頭文件代碼片段</Description>
			<Author>Microsoft Corporation</Author>
			<SnippetTypes>
				<SnippetType>Expansion</SnippetType>
				<SnippetType>SurroundsWith</SnippetType>
			</SnippetTypes>
		</Header>
		<Snippet>
			<Code Language="cpp">
				<![CDATA[#pragma GCC optimize("Ofast","inline","-ffast-math")
				#pragma GCC target("avx,sse2,sse3,sse4,mmx")
				#define _CRT_SECURE_NO_WARNINGS 1
				#include<bits/stdc++.h>
				#include<windows.h>
				using namespace std;
				int main(){
					return 0;
		}]]>
			</Code>
		</Snippet>
	</CodeSnippet>
</CodeSnippets>

輸入完畢後,另存爲到桌面,注意:後綴要改爲.snippet,然後再複製工具–>代碼片段管理器中Visual C++文件夾的地址,搜索一下,打開,把此文件拖進去就可以了。那麼我這個代碼片段是在VS2019中輸入ccode,然後點擊tab,就可以自動生成這段代碼:

#pragma GCC optimize("Ofast","inline","-ffast-math")
#pragma GCC target("avx,sse2,sse3,sse4,mmx")
#define _CRT_SECURE_NO_WARNINGS 1
#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
int main(){
		return 0;
}

至於爲什麼要加一句#define _CRT_SECURE_NO_WARNINGS 1,我們下一板塊再說,那麼此時,我們的代碼片段設置就結束了,我還給大家留了scanf和printf的代碼片段,有需要的朋友可以拿去用。

scanf: (輸入scanf點tab)

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
	<CodeSnippet Format="1.0.0">
		<Header>
			<Title>scanf</Title>
			<Shortcut>scanf</Shortcut>
			<Description>scanf的代碼片段</Description>
			<Author>Microsoft Corporation</Author>
			<SnippetTypes>
				<SnippetType>Expansion</SnippetType>
				<SnippetType>SurroundsWith</SnippetType>
			</SnippetTypes>
		</Header>
		<Snippet>
			<Declarations>
				<Literal>
					<ID>type</ID>
					<Default>size_t</Default>
					<ToolTip>控制變量類型</ToolTip>
				</Literal>
				<Literal>
					<ID>index</ID>
					<Default>a</Default>
					<ToolTip>索引</ToolTip>
				</Literal>
			</Declarations>
			<Code Language="cpp">
				<![CDATA[scanf("%$type$",&$index$);]]>
			</Code>
		</Snippet>
	</CodeSnippet>
</CodeSnippets>

printf:(輸入printf點tab)

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
	<CodeSnippet Format="1.0.0">
		<Header>
			<Title>printf</Title>
			<Shortcut>printf</Shortcut>
			<Description>printf的代碼片段</Description>
			<Author>Microsoft Corporation</Author>
			<SnippetTypes>
				<SnippetType>Expansion</SnippetType>
				<SnippetType>SurroundsWith</SnippetType>
			</SnippetTypes>
		</Header>
		<Snippet>
			<Declarations>
				<Literal>
					<ID>type</ID>
					<Default>size_t</Default>
					<ToolTip>控制變量類型</ToolTip>
				</Literal>
				<Literal>
					<ID>index</ID>
					<Default>i</Default>
					<ToolTip>索引</ToolTip>
				</Literal>
			</Declarations>
			<Code Language="cpp">
				<![CDATA[printf("%$type$",$index$);]]>
			</Code>
		</Snippet>
	</CodeSnippet>
</CodeSnippets>

板塊三:關於萬能頭文件和scanf、getch、kbhit編譯錯誤的問題

在這裏插入圖片描述
那麼看完前兩個板塊,最後一個問題來了,我們用萬能頭文件時,它顯示編譯錯誤,這是因爲VS2019沒有萬能頭文件的設定,所以需要我們手動弄一弄。首先找到這條路徑:Program Files (x86)–>Microsoft Visual Studio–>2019–>Community–>VC–>Tools–>MSVC–>14.25.28610(此文件夾因設備不同文件名也可能不同)–>include,然後在include文件夾裏新建一個文件夾bits(不能取其他文件名),然後返回我們的VS2019,新建一個頭文件類文件,在裏面輸入萬能頭文件的定義:

#ifndef _GLIBCXX_NO_ASSERT
#include <cassert>
#endif
#include <cctype>
#include <cerrno>
#include <cfloat>
#include <ciso646>
#include <climits>
#include <clocale>
#include <cmath>
#include <csetjmp>
#include <csignal>
#include <cstdarg>
#include <cstddef>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>

#if __cplusplus >= 201103L
#include <ccomplex>
#include <cfenv>
#include <cinttypes>
#include <cstdalign>
#include <cstdbool>
#include <cstdint>
#include <ctgmath>
#include <cwchar>
#include <cwctype>
#endif

// C++
#include <algorithm>
#include <bitset>
#include <complex>
#include <deque>
#include <exception>
#include <fstream>
#include <functional>
#include <iomanip>
#include <ios>
#include <iosfwd>
#include <iostream>
#include <istream>
#include <iterator>
#include <limits>
#include <list>
#include <locale>
#include <map>
#include <memory>
#include <new>
#include <numeric>
#include <ostream>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <stdexcept>
#include <streambuf>
#include <string>
#include <typeinfo>
#include <utility>
#include <valarray>
#include <vector>

#if __cplusplus >= 201103L
#include <array>
#include <atomic>
#include <chrono>
#include <condition_variable>
#include <forward_list>
#include <future>
#include <initializer_list>
#include <mutex>
#include <random>
#include <ratio>
#include <regex>
#include <scoped_allocator>
#include <system_error>
#include <thread>
#include <tuple>
#include <typeindex>
#include <type_traits>
#include <unordered_map>
#include <unordered_set>
#endif

然後另存爲到桌面,文件名爲stdc++.h(還是不能取另外的文件名),最後拖到一開始新建的bits文件夾中,就可以了。
關於scanf報錯,它說是不合法,那我們只要在頭文件前加一段這個代碼。

#define _CRT_SECURE_NO_WARNINGS 1

最後,關於getch()和kbhit()報錯,只需把getch()改爲_getch(),把kbhit()改爲_kbhit()。

總結

總的來說,VS2019還是一款不錯的編輯軟件,因爲我也是第一次使用,所以後續有什麼問題,我都會再寫博客的,那麼除了VS2019這款編輯器,我還推薦sublime text 3這款編輯器,有興趣的朋友可以在CSDN裏搜搜。

當你看完這篇博文,別忘了給初中生博主一個小小的贊喲~~

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