向量的问题,总是运行不出准确的结果,求指导决

C++语言 码拜 7年前 (2017-04-11) 829次浏览
abc.txt内容:
8
12 35 77 45
1 2 3 4 5 67 9
12 11 8 9 0
1 -11
2 3 4 5 6 7 8 9 0 -4 5 -1
5 4 3 2 13 6 7
12 34 56 78 99 98
11 111 11 11 11
#include “stdafx.h”
#include<iostream>
using namespace std;
#include<vector>
#include<fstream>
#include<sstream>
//–
typedef vector<int> VI;
typedef vector<VI> VVI;
void print(const VI&);
void input(VVI&);
bool findVec(const VVI&,VI&);
int main()
{
VVI matrix;
input(matrix);
VI vec;
if (findVec(matrix, vec)!=0)
print(vec);
else {
cout << “Not found” << endl;
}
}
void input(VVI& m) {
ifstream in(“E://c程序//Microsoft Visual Studio//MyProjects//abc.txt”);
int n, t;
in >> n;
m.resize(n);
for (string s; n– && getline(in, s);)
for (istringstream sin(s); sin >> t; m[m.size() – n -1].push_back(t));
}
bool findVec(const VVI& matrix,VI& v) {
for (int i = 0; i < matrix.size(); ++i) {
for (int j = 0; j < matrix[i].size(); ++j) {
if (matrix[i][j] == -1) {
v = matrix[i];
return true;
}
else {
return false;
}
}
}
}
void print(const VI& vec) {
for (int i = 0; i < vec.size(); ++i) {
cout << vec[i] << ” “;
}
}
为什么运行结果总是“Not  found”呢?
解决方案

20

代码功能归根结底不是别人帮本人看或讲解或注释出来的;而是被本人静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。
提醒:再牛×的老师也无法代替学生本人领悟和上厕所!
单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。

40

VC调试时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化,这样过一遍不就啥都明白了吗。
对VC来说,所谓‘调试时’就是编译连接通过以后,按F10或F11键单步执行一步以后的时候,或在某行按F9设了断点后按F5执行停在该断点处的时候。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明向量的问题,总是运行不出准确的结果,求指导决
喜欢 (0)
[1034331897@qq.com]
分享 (0)