我有一個數組程序,它將根據用戶輸入讀出列。不知何故,如果數組中有空字段,它會給我一個錯誤。例如,如果我讀了helloworl這個詞,我的程序就會起作用。但是,如果我閱讀helloword,我的程序將不會打印最後一個字符是d。我花了好幾天的時間試圖找出如何解決,我希望有人能幫助我。謝謝。C++二維數組錯誤
輸出應該是hlodworlwl。現在它正在顯示像這個hloworlwl錯過了最後一行。
還有一件事,我的程序將採取用戶輸入和排序並打印出陣列。我怎麼能錯誤證明程序,以確保用戶類型(邏輯)像123 321 213等而不是111 222 134?
如果我在的HelloWorld讀取和用戶輸入123,我的2D陣列應該是
hel
low
orl
d
輸出應爲hlodworlwl。現在它正在顯示像這個hloworlwl錯過了最後一行。
還有一件事,我的程序將採取用戶輸入和排序並打印出陣列。我怎麼能錯誤證明程序,以確保用戶類型(邏輯)像123 321 213等而不是111 222 134?
hel low orl
#include <iostream>
#include <string>
using namespace std;
char array[5][5];
//function that prints the column c of the array
void printArray(int c)
{
for(int i=0; i<3; i++)
{
cout << array[i][c];
}
}
int main() {
string alphabate;
string a="helloworld";
for(int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
{
array[i][j] = a[j+ (i * 3)];
}
}
cout << "Enter some alphabate:";
cin >> alphabate;
//checking the input parameters
for (int j=0; j<3; j++) {
if (alphabate[j] == '1' || alphabate[j] == 'a')
{
printArray(0);
}
else if (alphabate[j] == '2' || alphabate[j] == 'b')
{
printArray(1);
}
else if (alphabate[j] == '3' || alphabate[j] == 'c')
{
printArray(2);
}
}
return 0;
}
再次,感謝你通過我的問題閱讀。
*「..輸出應該是hlodworlwl。現在它顯示像這樣hlodworlwl」*,這兩個輸出是相同的。我錯過了什麼? –
我真的不明白你的程序應該做什麼,但我看到你的數組像這樣:char array [3] [3];',所以它可以保存'9'字符,然而string'hel low orl d'具有'10'個字符。 – PcAF
即時通訊這樣的大傢伙,我睡覺剝奪,因此我犯了很多錯誤,缺乏解釋。第二個「hlodworlwl」應該是hloworlwl。 @bkVnet我試着在數組[5] [5]之前使用,並最終得到那些空的垃圾值。我如何解決這個問題? – Bhappy