#include <iostream>
#include <map>
#include <sstream>
#include <vector>
using namespace std;
int main()
{
int input_num = 0;
while(cin>>input_num)
{
cin.ignore();
map<string, char> transpose = {
{".-",'A'} , {"-...",'B'} , {"-.-.",'C'} , {"-..",'D'} ,
{".",'E'} , {"..-.",'F'} , {"--.",'G'} , {"....",'H'} ,
{"..",'I'} , {".---",'J'} , {"-.-",'K'} , {".-..",'L'} ,
{"--",'M'} , {"-.",'N'} , {"---",'O'} , {".--.",'P'} ,
{"--.-",'Q'} , {".-.",'R'} , {"...",'S'} , {"-",'T'} ,
{"..-",'U'} , {"...-",'V'} , {".--",'W'} , {"-..-",'X'} ,
{"-.--",'Y'} , {"--..",'Z'}
};
for(int i=0; i<input_num; i++)
{
string input_str = "";
vector<string> mos_code;
getline(cin, input_str);
input_str += " ";
for(int j=0; j<input_str.length(); j++)
{
if(input_str[j]==' ')
{
string tmp = input_str.substr(0, j);
input_str = input_str.substr(j+1, input_str.length()-j-1);
mos_code.push_back(tmp);
j = -1;
}
}
for(int k=0; k<mos_code.size(); k++)
{
map<string, char>::iterator iter = transpose.find(mos_code[k]);
if(iter!=transpose.end())
{
cout << iter->second;
}
}
cout << endl;
}
}
}
在自己的IDE(CodeBlock MinGw)上結果是正確的,測試提交也是正確的
正式提交卻發現輸出莫名少了最後一個字符
#include
#include
#include
#includeusing namespace std;
int main()
{
int input_num = 0;while(cin>>input_num)
{
cin.ignore();
map transpose = {
{".-",'A'} , {"-...",'B'} , {"-.-.",'C'} , {"-..",'D'} ,
{".",'E'} , {"..-.",'F'} , {"--.",'G'} , {"....",'H'} ,
{"..",'I'} , {".---",'J'} , {"-.-",'K'} , {".-..",'L'} ,
{"--",'M'} , {"-.",'N'} , {"---",'O'} , {".--.",'P'} ,
{"--.-",'Q'} , {".-.",'R'} , {"...",'S'} , {"-",'T'} ,
{"..-",'U'} , {"...-",'V'} , {".--",'W'} , {"-..-",'X'} ,
{"-.--",'Y'} , {"--..",'Z'}
};for(int i=0; i {
string input_str = "";
vector mos_code;getline(cin, input_str);
input_str += " ";for(int j=0; j {
if(input_str[j]==' ')
{
string tmp = input_str.substr(0, j);
input_str = input_str.substr(j+1, input_str.length()-j-1);
mos_code.push_back(tmp);
j = -1;
}
}for(int k=0; k {
map::iterator iter = transpose.find(mos_code[k]);if(iter!=transpose.end())
{
cout << iter->second;
}
}cout << endl;
}
}
}
在自己的IDE(CodeBlock MinGw)上結果是正確的,測試提交也是正確的
正式提交卻發現輸出莫名少了最後一個字符
測資一行的最後面多了一個'\r'
cin.ignore();
另外少輸出一行也是因為第一行的數字後面是\r\n,所以cin.ignore()只吃到\r