2017-06-30 44 views
2

我目前在CS的第一學期,我發現Visual Studio是比DevC++或Code :: Blocks更優雅的C++編程解決方案,我想我將在未來使用它。我寫的程序類型大多是彼此獨立的,因爲我還沒有學習面向對象。 問題是,Visual Studio對於獨立程序來說要困難得多。我剛開始嘗試通過它學習我的方式,但還沒有找到一種方法來輕鬆創建獨立的源文件。我試圖創建一個項目,並將多個文件放在「源文件」文件夾中,但這會產生很多麻煩,這些文件似乎相互衝突併產生一些錯誤,像這樣一個在Visual Studio中編寫獨立程序的最佳方法是什麼?

致命錯誤LNK1169:一個或多個多重定義符號找到

錯誤LNK2005:_main已經whatever.obj

而且,不把文件裏面的「源文件」產生的一些問題也定義。這是我經常寫的代碼類型的一個例子:

#include <iostream> 
using namespace std; 

int main() 
{ 
int m, n; 
cin >> m >> n; 
int a[150][150]; 
int b; 
cin >> b; 
int x1, y1; 

for (int i = 0; i < m; i++) 
{ 
    for (int j = 0; j < n; j++) 
    { 
     a[i][j] = 0; 
    } 
} 

for (int i = 0; i < b; i++) 
{ 
    cin >> x1 >> y1; 
    a[x1][y1] = -1; 
} 

for (int i = 1; i <= m; i++) 
{ 
    for (int j = 1; j <= n; j++) 
    { 
     if (a[i][j] == -1) 
     { 
      if (a[i - 1][j - 1] != -1) a[i - 1][j - 1]++; 
      if (a[i - 1][j] != -1) a[i - 1][j]++; 
      if (a[i - 1][j + 1] != -1) a[i - 1][j + 1]++; 
      if (a[i][j - 1] != -1) a[i][j - 1]++; 
      if (a[i][j + 1] != -1) a[i][j + 1]++; 
      if (a[i + 1][j - 1] != -1) a[i + 1][j - 1]++; 
      if (a[i + 1][j] != -1) a[i + 1][j]++; 
      if (a[i + 1][j + 1] != -1) a[i + 1][j + 1]++; 
     } 
    } 
} 

for (int i = 1; i <= m; i++) 
{ 
    for (int j = 1; j <= n; j++) 
    { 
     if (a[i][j] == 0) 
      cout << "-"; 
     else if (a[i][j] > 0) 
      cout << a[i][j]; 
     else 
      cout << "B"; 
    } 
    cout << endl; 
} 

return 0; 
} 

任何幫助表示讚賞,以幫助我解決這個問題!

+3

爲每個新項目創建一個新解決方案。 –

回答

2

在Visual Studio中有'Solutions'和'Projects'的概念。

  • 'Solutions' 包含零個或多個 'Projects'。
  • 'Projects'包含零個或多個文件(例如* .cpp,* h)。

單個程序通常會有自己的項目。

一個解決方案通常是一組程序或協同工作,解決了任務庫,但他們也可能是完全無關的,這樣對你來決定。

一般與碰撞文件解決您的問題,您只需創建一個新項目:

  • File -> New -> Project
+0

沒有創建不相關的程序而沒有創建新項目的快速方法嗎? –

+0

相信我在一個項目中有兩個不同的程序不會讓你開心。另外創建一個新項目非常快。使你能保持兩個程序在一個項目中,唯一的辦法是,以確保您的源文件都沒有,例如使用命名空間碰撞的,然後你將需要要麼註釋掉其他入口點(INT主())或亂用鏈接器中的入口點設置,這當然是你想要避免的。 – Shiro

相關問題