Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Input 以十六进制输入一行数字_Input_Binary_Bit Manipulation_Hex - Fatal编程技术网

Input 以十六进制输入一行数字

Input 以十六进制输入一行数字,input,binary,bit-manipulation,hex,Input,Binary,Bit Manipulation,Hex,我有两行十六进制的二进制数要输入,然后在这些行上进行位运算。我这样做:- int main() { vector < char > v1; vector < char > v2; char c; int i = 0; int j = 0; while((c = cin.get()) != ' ' || c!= '\0' || c!= '\n') { cin.putback(c); cin >> hex >&g

我有两行十六进制的二进制数要输入,然后在这些行上进行位运算。我这样做:-

int main()
{

  vector < char > v1;
  vector < char > v2;
  char c;
  int i = 0;
  int j = 0;
  while((c = cin.get()) != ' ' || c!= '\0' || c!= '\n')
  {
    cin.putback(c);
    cin >> hex >> c;
    v1.push_back(0);
    v1[i] = v1[i] | c;
    i++;
  }

  while((c = cin.get()) != ' ' || c!= '\0' || c!= '\n')
  {
    cin.putback(c);
    cin >> hex >> c;
    v2.push_back(0);
    v2[j] = v1[j] | c;
    j++;
  }

  for(int i = 0; i < v1.size(); i++)
  cout << hex << v1[i]; //this I wrote to check whether I was doing the right thing

  return 0;
}
但是,当我编译时,并没有输出,因为我使用的是在线编译器,它说超过了时间限制,我认为这是SEGFULT的一个迹象


编辑:我想如果我使用一个数据类型作为整数,但是是1字节的话,我的问题就会得到解决。你似乎在每个循环中调用
cin.get()
三次。我怀疑你想读三个字。尝试在while循环之外调用
cin.get()
。@AndresRiofrio…尝试过这样做…我用c替换了另外两个cin.get()。结果相同
eaa8b5f8aaf9174145bf43e1784b
bafa3ed18510abd11f4564e32133