2014-03-24 40 views
0

我有一个文本文件中的数字一些负面的,都包含小数,我设法读取它们并将它们转换为整数来显示;读int作为独立的数字

for (int i = 0; i < 1; i++) 
    { 



     std::string str = &(cmemblock[0]); //cmemblock is the .txt file 
     std::istringstream iss(str); 
     std::vector<int> numbers; 
     int number; 
     while (iss >> number) { 
      numbers.push_back(number); // collect inputs 

      cout << number << endl; //Displays Stored Value 
      } 





     if (!iss.eof()) { 
      cout << "Blank Space"<<endl; //Error message to detect blank space 
     } 
    } 

我需要创建一个循环读取每个每一个字符,例如,如果第一行是帮助“-0.009876”,每个值应单独阅读,“ - ”,“0”“”。等等。其原因是因为数字要用莫尔斯电码代表,因为它已经在数组中建立起来了,所以我需要个别号码来将每个数字分配给它指定的莫尔斯电码。

+2

为什么不使用字符串的'[]'运算符循环/迭代字符串的每个单独的字符? – TypeIA

+0

你是否期待数字格式不同?如10E + 3? –

+0

@R Sahu不,它应该是整数 – NoobProgrammer

回答

0

根据你发布的内容,我不会打扰任何本地数字转换。我只是简单地阅读文本文件并逐个遍历每个字符,将其映射到您的莫尔斯码映射数组。如果您需要使用给定的数字作为映射数组的索引,则可以通过从其中减去0来将其从char转换为int值,例如,假定使用charPosition作为最外层循环索引的循环字符串..

//...omitting other fairly obvious loop code 
// with str holding '-0.009776' 

if (isdigit(str[charPosition])) 
{ 
    int index = str[charPosition] - '0'; 
    // index into 0-based array of presumed morse code mapping values 
    morseValue = morseMap[index]; 
} 
+0

这段代码给了我我需要的想法,明白了!很好的回答谢谢 – NoobProgrammer