2015-07-21 98 views
-3

一個文本文件包含下一行「1 + 2 = 4」。我想製作一個程序,它將讀取每個字符並將它們存儲在一個數組中,然後將表示數字的char變量轉換爲int類型的變量,在數字和「=」之後的數字之間的符號上,輸出「正確」或「Inccorect」。 首先,我期望包含1的char變量的char變量包含值爲1的int變量,但它包含117.當我試圖查看一個ASCII tabel時,1是49.有沒有一種方法來存儲數字直接進入一個int數組,寫入數值,並將符號轉換爲char數組或其他方式來解決這個問題?如何更改一個變量是一個字符,並將一個數字表示爲一個float或int?

+0

歡迎來到StackOverflow!你有嘗試過什麼嗎?顯示你寫的一些代碼。 :)如果你四處搜索「convert char to int」 - 你可能會找到你的解決方案,並做一些工作。如果你的問題保持不變,你將繼續獲得降價。 – Roman

+0

是的,我們需要看看你自己制定了什麼,我們可以幫助你。 – zoska

回答

2

使用某種iostream。例如:

#include <iostream> 
#include <sstream> 

using namespace std; 

int main() { 
    string input("1+2=4"); 
    stringstream ss(input); 

    int a, b, c; 
    char sign; 
    ss >> a >> sign >> b >> sign >> c; 

    cout << (a + b == c) << endl; 
    return 0; 
} 

使用流轉換您的數字後,您可以將它們存儲在任何需要的地方。

+0

是的,只有您有「號碼符號號碼」纔有效。它不是通用的... – zoska

+0

如果你想要通用性,你可以使用這種技術構建一個遞歸下降解析器: –

0

您應該拆分字符串,然後使用庫來解析數字。 例如,您可以使用:

string input_number_string = "42.42"; 
float number; 
sscanf(input_nuber_string, "%f", &number); 

還有更好的庫。

+0

你在哪裏拆分字符串? –

+0

@ThomasMatthews有很多方法可以做到這一點。不知道問題的背景使得在它們之間做出選擇很困難,所以我將它從代碼中刪除了。 – Sorin

相關問題