Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.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
c+中的分离故障+;,无输出 我试图制作一个C++程序来读取文件的输入,在分隔符之前放置空格,并写入另一个文件。 例子: 输入: int main() 输出: int main() #包括 #包括 #包括 使用名称空间std; fstream-oup,inp; int-dsize=18; char delim[]={',',''''''.\n','\t','\','(',')','{','}',, '\'', '[', ']', '+', '-', '*', '&', '/', '%'}; 布尔·伊斯德林(字符c){ 对于(int i=0;i_C++_Segmentation Fault - Fatal编程技术网

c+中的分离故障+;,无输出 我试图制作一个C++程序来读取文件的输入,在分隔符之前放置空格,并写入另一个文件。 例子: 输入: int main() 输出: int main() #包括 #包括 #包括 使用名称空间std; fstream-oup,inp; int-dsize=18; char delim[]={',',''''''.\n','\t','\','(',')','{','}',, '\'', '[', ']', '+', '-', '*', '&', '/', '%'}; 布尔·伊斯德林(字符c){ 对于(int i=0;i

c+中的分离故障+;,无输出 我试图制作一个C++程序来读取文件的输入,在分隔符之前放置空格,并写入另一个文件。 例子: 输入: int main() 输出: int main() #包括 #包括 #包括 使用名称空间std; fstream-oup,inp; int-dsize=18; char delim[]={',',''''''.\n','\t','\','(',')','{','}',, '\'', '[', ']', '+', '-', '*', '&', '/', '%'}; 布尔·伊斯德林(字符c){ 对于(int i=0;i,c++,segmentation-fault,C++,Segmentation Fault,代码乱七八糟,很难发现错误,但是我注意到您的chartost函数是递归的,但不会在递归退出时终止。第一次调用的for循环将在代码在字符串的其余部分上递归后处理字符串的其余部分。我将从查找您的问题开始e、 尝试在调试器中运行以捕获正在运行的崩溃。这将帮助您找到代码中崩溃发生的位置,并让您检查相关变量的值。此外,为了确保显示cout语句,请在输出后放置endl语句。Codeblocks-警告:GDB:无法设置控制终端:操作不正常permitted@AnkitVimal没有人可以尝试您的代码,因为它读

代码乱七八糟,很难发现错误,但是我注意到您的chartost函数是递归的,但不会在递归退出时终止。第一次调用的for循环将在代码在字符串的其余部分上递归后处理字符串的其余部分。我将从查找您的问题开始e、

尝试在调试器中运行以捕获正在运行的崩溃。这将帮助您找到代码中崩溃发生的位置,并让您检查相关变量的值。此外,为了确保显示
cout
语句,请在输出后放置
endl
语句。Codeblocks-警告:GDB:无法设置控制终端:操作不正常permitted@AnkitVimal没有人可以尝试您的代码,因为它读取的是我们没有的文件。另外,请修复格式。我将从修复编码样式开始。缩进非常糟糕。谢谢。我将开始研究它。问题在于子字符串的构造,子字符串的长度错误,因此该程序正在尝试构造长度为0的字符串。非常感谢您的帮助。您可能希望在递归调用之后退出循环(或者删除递归,只使用循环)…但我很高兴您发现了直接的问题!
#include <iostream>
#include <cstdlib>
#include <fstream>
using namespace std;

fstream oup, inp;
int dsize = 18;
char delim[] = {',',  ' ', '\n', '\t', '\"', '(', ')', '{', '}',
                '\'', '[', ']',  '+',  '-',  '*', '&', '/', '%'};

bool isDelim(char c) {
  for (int i = 0; i < 18; i++)
    if (c == delim[i])
      return true;
  return false;
}

void chartost(string a) {
  int d = 0;
  if (a.length() == 1)
    oup << a << " ";
  else {
    for (unsigned i = 0; i < a.length(); i++) {
      if (isDelim(a[i])) {
        d = 1;
        oup << a.substr(0, i) << " ";
        chartost(a.substr(i, a.length()));
      }
    }
    if (d == 0) {
      oup << a << " ";
    }
  }
}

int main() {
  cout << "Initial Point";
  inp.open("test.c", ios::in);
  oup.open("testspace.c", ios::out);
  string a;
  cout << "before isopen";
  if (inp.is_open() && oup.is_open()) {
    while (inp >> a) {
      cout << a;
      chartost(a);
    }
    cout << "after operations \n";
    inp.close();
    oup.close();
  }
  return 0;
}