按位分量和分割故障
Segmentation fault in bitwise component sum
所以我的实验室基本上是从cin中取出字符串,将其分成组件(进入其各种字符),然后使用位操作符对所有字符进行组件和。最后,打印出结果。这是我有的。
在输入第一个字符串后,我得到一个分段错误。
[EDIT]现在运行没有segFaults,但我得到的结果= 0,aInt = 0,和bInt = 0。不知道为什么?我输入了a = hello和b = world
using namespace std;
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
int main()
{
string a, b;
char *aStopstring, *bStopstring;
unsigned long aInt, bInt;
cout<<"Please enter a string: "<<endl;
cin>> a;
const char* aString = a.c_str();
cout<<"Please enter another string: "<<endl;
cin>> b;
const char* bString = b.c_str();
aInt = strtoul(aString, &aStopstring, 2);
bInt = strtoul(bString, &bStopstring, 2);
cout<<aInt<< " " << bInt<<endl;
unsigned int c = aInt&bInt;
unsigned int d = aInt^bInt;
c = c>>1;
unsigned int result = c^d;
cout<<"The sum is: "<< (int)result <<endl;
return 1;
}
没有分配aString和bString。
char* aString = new char[255];
char* bString = new char[255];
当你完成的时候,确保你删除了那些指针。
delete[] aString;
delete[] bString;
aString = 0x0;
bString = 0x0;
如果您不要求使用char*作为输入,您可以使用std::string
(因此您不必担心为输入分配足够的空间),然后通过使用c_str()
来处理std::字符串的底层字符缓冲区。
的例子:
std::string aString;
std::cin >> aString;
const char* buffer = aString.c_str();
在您第一次尝试将某些内容读入该变量之前添加语句,例如aString = new char[80];
相关文章:
- 分割故障C++矩阵
- C ,二进制树的高度,而不是检查我的子树是否为空,而是在检查我的子树是否是叶子节点.抛出分割故障
- 我正在为此代码分割故障
- 在执行strcpy时获取分割故障错误
- 空隙指针分割故障
- Xcode会产生分割故障,而不是例外
- OPENCV C 中的分割故障误差
- 分割故障:核心倾倒C 矢量对字符串:
- C 2D数组导致分割故障(核心倾倒)
- 分割故障/错误读数变量-C 列表
- DLSYM导致分割故障
- 使用C 中的操作员删除的分割故障
- 使用Linux X64下的Libmozjs-52(SpidermonKey)进行分割故障
- 使用长变量时分割故障(11)错误
- C - 返回字符串时的分割故障
- 创建VertexArray时的分割故障
- 向量分割故障的向量
- 从std :: fileSystem ::路径对象的类中退出时的分割故障
- C 矢量分割故障
- 基于向量的数据格式的分割故障误差