exc_bad_access(代码= 1,地址= 0x68)在第二个读取方法中
EXC_BAD_ACCESS (code=1, address=0x68) in second read method
我对使用xcode进行C 是相对较新的。
我的问题是:
我正在尝试使用FOPEN读取两个TXT文件,这些文件我制作了两种不同的方法(在示例代码中,我只有一种可以简短的方法(,这两种方法都可以读取文件,即读取文件的完美工作,即当我测试它们时他们单独在主要中,完美地从文件中读取数据。但是,如果我在主机中将这两种方法都列为两种方法,则在阅读第二个TXT文件时会抛出" exc_bad_access(code = 1,地址= 0x68("。因此,似乎不可能打开并读取超过1个文件。我的代码看起来像这样:
#include <iostream>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <string>
#include <time.h>
#include <assert.h>
#include <vector>
#include <iterator>
#include <algorithm>
#include <numeric>
#include <sstream>
#include <vector>
float fl[10];
void readfile(std::string s){
strcat(filename, s.c_str());
input = fopen(filename, "r");
for (int i == 0; i < 10; i++){
fscanf(input, "%ft", fl[i]);
}
fclose(input);
}
遵循主要作品
int main(int argc, const char * argv[]) {
std::string s1 = "Input1";
readfile(s1);
return 0;
}
在此主要中,例外是在方法readfile(s2(中抛出的。
int main(int argc, const char * argv[]) {
std::string s1 = "Input1.txt";
std::string s2 = "Input2.txt";
readfile(s1);
readfile(s2);
return 0;
}
txt文件input1和input2包含10个浮点数,每个浮点数由选项卡分开。
例外是在FSCANF线上抛出的。有人知道问题可能是什么吗?
找到了答案。应该使用" strcpy"而不是" strcat"。THX提供帮助和建议!
您永远不会初始化i
。
for (int i == 0; i < 10; i++){
应该是:
for (int i = 0; i < 10; i++){
i
可能包含垃圾,这会导致您放置随机的内存并提供不良访问。
相关文章:
- 我有两个类需要在同一 cpp 文件中相互引用,但第一个类无法识别第二个类类型的对象
- 等待整个 omp 块完成,然后再调用第二个函数
- 我想在C++中读取一些多个字符,但它永远不会读取第二个字符
- 如何在创建自定义迭代器时获得 std::p air 的第一个和第二个?
- WinAPI 在单击第一个对话框上的按钮控件并销毁第一个对话框后创建第二个对话框
- 将第二个 GATT 服务添加到 Movesense 容器
- 如何在 c++ 中根据第二个元素按降序对列表进行排序
- 对的排序向量 (std::vector<pair<int, int>>) 按对的第一个元素搜索并更新第二个元素值
- 比较 2 个向量并从第二个向量中删除在第一个 - c++ 中找不到的元素
- 为什么这个程序没有打印返回的迭代器的正确第二个元素?
- 使第二个类的构造函数成为第一个类中的友元函数
- 为什么第二个代码给出了预期的结果,而第一个代码却没有?
- exc_bad_access(代码= 1,地址= 0x68)在第二个读取方法中
- 无法读取一个.dat文件以创建第二个.dat文件
- 试图在第二个多维阵列中读取时会发生分割故障
- getline()只读取第二个单词(bug)
- 从文件中重新读取int到数组中,倒数第二个元素总是错误的
- 程序不会读取第二个向量C++
- C++(WINAPI - WIN32) 第二个编辑框无法读取输入值
- 使用getline()从文件中读取第二个整数