- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用我的 C++ 程序打开和读取用户输入文件。
我的程序有两个函数; Open_Read()
和 Enter_Filename()
。
Enter_Filename
要求用户输入输入文件名(从 1 到 4)。
函数Open_Read
打开并读取文件的内容并显示它。
当 nb = 1
(1 <= nb <=4) 程序运行,但是从 nb >=2
程序无法打开文件(或无法找到文件)。
谁能帮我找出问题所在?
#include <iostream>
#include <fstream>
using Namespace std;
void Enter_Filename(const int& m, int& nb, char name[], double yy[], double xx[]);
void Open_Read(ifstream&, char filename[], char name[], double yy[], double xx[], int &n, double &sd, char set1[]);
double y[256], x[256];
int main()
{
ifstream in;
char filename[7];
char name[7];
char set1[20];
double yy[4];
double xx[4];
int n = 0;
double sd = 0;
int nb;
int m = 4;
Enter_Filename(m, nb, filename, &yy[4], &xx[4]);
for (int i = 1; i <= nb; i++)
{
Open_Read(in, &filename[i], &name[i], &yy[i], &xx[i], n, sd, &set1[i]);
}
cout << "\n";
system("PAUSE");
return 0;
}
这里的函数 Enter_Filename
:
void Enter_Filename(const int& m, int& nb, char name[], double yy[], double xx[])
{
cout << "Please Enter the number of articles (1 <= nb <= 4)\n"
"Nb =";
cin >> nb;
if (nb <= m)
{
for (int j = 1; j <= nb; j++)
{
cout << j << ".Article (e.g. input.txt, input1.txt...) =";
cin >> &name[j];
cout << "yy(" << j << ") =";
cin >> yy[j];
cout << "xx(" << j << ") =";
cin >> xx[j];
}
}
}
和函数Open_Read
:
void Open_Read(ifstream&, char filename[], char name[], double yy[], double xx[], int& n, double &sd, char set1[])
{
ifstream inf;
//cout << "Enter the file name to be opened: ";
//cin >> fileName;
inf.open(filename, ios::in);
if (inf.fail())
{
cout << "Opening " << filename << " file for reading\n";
cout << "---------------------------------------\n";
cout << "The " << filename << " file could not be opened!\n";
cout << "Possible errors:\n";
cout << "1. The file does not exist.\n";
cout << "2. The path was not found.\n";
exit(1);
}
else
{
cout << "fileName:" << filename << endl;
inf >> name >> set1;
inf.ignore(numeric_limits<streamsize>::max(), '\n');
inf >> n >> sd;
for (int i = 1; i <= n; i++)
{
inf >> y[i] >> x[i];
printf("%3i: %10.3f %10.3f\n", i, y[i], x[i]);
}
y[0] = *yy;
x[0] = x[0] + *xx;
for (int i = 1; i <= n; i++)
{
y[i] = y[i - 1] + y[i];
x[i] = x[i] + *xx;
}
}
inf.close();
cout << "NAME:" << name << endl;
cout << "SetID:" << set1 << endl;
cout << "N =" << n << endl;
cout << "SubD =" << sd << endl;
if (inf.fail())
{
cout << "\nThe file " << filename << " could not be closed!\n";
exit(1);
}
return;
}
我使用两个文件:input.txt
和 input1.txt
:
input.txt
INPUT.TXT
1S12-111-433-3245 K
5 12.0000
0.000 12.290
1.840 0.170
1.480 6.190
1.220 17.100
1.040 25.000
input1.txt
INPUT1.TXT
1S12-111-533-3245 P
3 12.0000
.000 11.780
0.150 34.820
1.840 24.810
最佳答案
这是您的应用程序的工作版本:
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <iosfwd>
using namespace std;
void Enter_Filename(const int& m, int& nb, char name[], double yy[], double xx[], int j);
void Open_Read(ifstream&, char filename[], char name[], double yy[], double xx[], int &n, double &sd, char set1[]);
double y[256], x[256];
int main()
{
ifstream in;
char filename[4][10];
char name[7];
char set1[20];
double yy[4];
double xx[4];
int n = 0;
double sd = 0;
int nb;
int m = 4;
cout << "Please Enter the number of articles (1 <= nb <= 4)\n"
"Nb =";
cin >> nb;
if (nb <= m)
{
for (int j = 0; j < nb; j++)
{
Enter_Filename(m, nb, filename[j], &yy[4], &xx[4], j);
}
}
for (int i = 0; i < nb; i++)
{
Open_Read(in, filename[i], &name[i], &yy[i], &xx[i], n, sd, &set1[i]);
}
cout << "\n";
system("PAUSE");
return 0;
}
void Enter_Filename(const int& m, int& nb, char name[], double yy[], double xx[], int j)
{
cout << j << ".Article (e.g. input.txt, input1.txt...) =";
cin >> &name[0];
cout << "yy(" << j << ") =";
cin >> yy[j];
cout << "xx(" << j << ") =";
cin >> xx[j];
}
void Open_Read(ifstream&, char filenames[], char name[], double yy[], double xx[], int& n, double &sd, char set1[])
{
ifstream inf;
//cout << "Enter the file name to be opened: ";
//cin >> fileName;
char filename[11];
memcpy(filename, filenames, 11);
filename[10] = '\0';
inf.open(filename, ios::in);
if (inf.fail())
{
cout << "Opening " << filename << " file for reading\n";
cout << "---------------------------------------\n";
cout << "The " << filename << " file could not be opened!\n";
cout << "Possible errors:\n";
cout << "1. The file does not exist.\n";
cout << "2. The path was not found.\n";
exit(1);
}
else
{
cout << "fileName:" << filename << endl;
inf >> name >> set1;
inf.ignore(numeric_limits<streamsize>::max(), '\n');
inf >> n >> sd;
for (int i = 1; i <= n; i++)
{
inf >> y[i] >> x[i];
printf("%3i: %10.3f %10.3f\n", i, y[i], x[i]);
}
y[0] = *yy;
x[0] = x[0] + *xx;
for (int i = 1; i <= n; i++)
{
y[i] = y[i - 1] + y[i];
x[i] = x[i] + *xx;
}
}
inf.close();
cout << "NAME:" << name << endl;
cout << "SetID:" << set1 << endl;
cout << "N =" << n << endl;
cout << "SubD =" << sd << endl;
if (inf.fail())
{
cout << "\nThe file " << filename << " could not be closed!\n";
exit(1);
}
return;
}
我没有控制你的计算结果,我只是确保它现在打开你的文件
关于c++ - 如何使用 for 循环多次提示用户输入不同的文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33890754/
我有一个测试即将进行,我想澄清两个有关参数的问题。 在我的笔记中指出,将参数传递给函数的推荐方法是使用“按引用传递” const type& x; // for "in" parameters
当我通过 OMG 2.5(Beta)推广的 UML 规范阅读以下概念时: in: Indicates that Parameter values are passed in by the caller
我试图在用户按下 Enter 时触发一个函数。我将此输入设置为只读的原因是限制用户在填充值后修改输入中的值。 该值来自将在点击属性中触发的弹出窗口。问题是 keyup.enter 没有触发该输入。 代
我在jQuery中使用模式弹出窗口控件,该弹出窗口具有由jQuery Tokenize输入插件提供动力的输入文本。问题是,当我在模式弹出文本框中键入内容时, token 化插件的搜索结果显示为隐藏在弹
我有一个问题。当我选中复选框时,系统工作正常,总值发生变化,但一旦我修改文本输入,它就会变为 0。我需要将此文本框输入排除在更改值之外。 这是 html: $15000 $
我正在努力让它发挥作用,但还是有些不对劲。 我想用 CSS 设置提交按钮的样式以匹配我已有的按钮。 风格: input[type="button"], input[type="submit"], b
import java.util.*;; public class selection { Scanner in=new Scanner(System.in); private
这可能是一个非常菜鸟的问题。假设我有一个带宽限制为 100MB/s 的网卡,那么输入/输出带宽是否有可能达到该限制 同时 ?或者我会在任何时候遇到这个不等式:in bandwidth + out ba
看着这个问题,Fill immutable map with for loop upon creation ,我很好奇是什么this表示在 Map(1 -> this) . scala> Map(1
我有这样的东西 一个 乙 问? 是或否 数字 数字或零 我想做的是: 如果 B1 = “Y”,则让用户在 B2 中输入一个数字。 如果 B1 = “N”,则将 B2 中的值更改为零,并且不允许用户在
我有一个包含许多列的表,我想添加 input标题单元格内的字段,但我希望输入适合根据正文内容的宽度。 这是没有 input 的样子领域: 这就是 input 的样子领域: 可以看出,像“index”和
关于为 FTP 客户端设置传出和传入文件夹,您遵循哪些最佳实践(如果有)?我们通常使用“outgoing”和“incoming”,但无论你如何表述方向,它都可以有两种解释方式,具体取决于名称相对于哪一
我正在尝试“求解”给定 d 的 Pell 方程:x^2 - d * y^2 = 1,或者至少我想得到最小的 x > 0 来求解方程。到目前为止,一切都很好。这是我的 Haskell 代码 minX :
我是VS Code的新手,可以使用Ctrl + Enter将代码运行到python交互式窗口中。我希望光标自动移动到下一行,因此我可以逐行浏览代码。 能做到吗? 最佳答案 如this blog pos
我正在创建一个 bool 值矩阵/二维数组,并且我想为 dategrid 推断一种不仅仅是“ANY”的类型。 let yearRange = [2000,2001,2002,2003,2004]; l
我有两个排序的列表,例如 a = [1, 4, 7, 8] b = [1, 2, 3, 4, 5, 6] 我想知道a中的每个项目是否在b中。对于上面的示例,我想找到 a_in_b = [True, T
菜鸟警报 这很奇怪 - 当我编写以下代码时,尝试在 AngularJS 中创建自定义指令: myModule.directive('myTab', function(){ console.lo
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
假设我正在使用 gdscript 静态类型,并且对于一个函数参数,我事先不知道我会得到什么。这就是 python 中 typing.Any 的作用。如何使用 gdscript 做到这一点? 似乎 Va
我使用 dropzone 上传多个图像,并且工作正常,直到我想为每个图像插入品牌和网址。 我遇到的唯一问题是,当我要从输入字段获取值时,我会从服务器获取来自字段(品牌、网址)的未定义值,但如果我使用静
我是一名优秀的程序员,十分优秀!