- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用输入重定向来扫描文件中的正则表达式,并将这些正则表达式与文件的行号一起输出到新的输出文本文件。输出文本文件是用于输入重定向的文件的名称,并附加“.txt”。例如,如果程序按如下方式运行:
./scanRegex < scanThisFile.log
那么应该调用输出文件
scanThisFile.log.txt
我创建了一个简单的程序如下(减去正则表达式扫描到隔离问题)。
主要.cpp
#include <iostream>
#include <ios>
#include <fstream>
#include <string>
#include <vector>
int main( int argc, char* argv[] )
{
std::string fileName = argv[1]; //<---===== ??????
std::string txt = ".txt\n";
char outputFile[100];
for( int i = 0; i < fileName.length(); ++i ){
outputFile[i] = fileName[i];
}
for( int i = fileName.length(); i < fileName.length() + 4; ++i ){
outputFile[i] = txt[i - fileName.length()];
}
std::ofstream outfile;
outfile.open(outputFile);
outfile << "It works!!";
outfile.close();
}
当我使用
argv[ 0 ]
程序运行但文件名与我的意图不符但可以理解,因为程序名是 argv 的第一个参数:一个.txt
当我使用
argv[ 1 ]
我收到以下运行时错误:
osboxes@osboxes:~/Desktop/ps7$ ./a < device1_intouch.log terminate called after throwing an instance of 'std::logic_error' what(): basic_string::_M_construct null not valid Aborted (core dumped)
当我使用
argv[2]
程序运行但文件名错误且充满乱码(溢出?):
也许这只是我的问题所在的一部分。任何帮助都会大大地赞赏。谢谢。
最佳答案
您将标准输入 与程序的命令行参数 混淆了。命令行参数是调用程序时包含在命令行中的字符串列表。例如:
$ ./myProgram arg1 arg2 ... argn
这些是通过 argv
和 argc
读取的,它们分别代表“参数 vector ”和“参数计数”。按照惯例,第一个参数是程序的工作目录。在此示例中,您将:
argv == {"/path/to/myProgram", "arg1", "arg2", ..., "argn"}
argc == n
在 main
的开头。与任何原始数组一样,您必须注意不要通过检查 argv
从 argc
越界读取。
另一方面,标准输入是在调用 main
期间提供给程序的数据流。这是使用 std::cin
读取的。
int main(int argc, char** argv){
std::string s;
std::cin >> s; // read from standard input
}
当你运行这个程序时,它会阻塞在指定的行,直到它从标准输入接收到数据。当程序从命令行运行时,可以通过手动键入来提供此数据:
$ ./myProgram
hello
或通过输入重定向:
$ echo "hello" | ./myProgram
$ ./myProgram < hello.txt
在上面的三个示例中,s
将包含输入文本的第一个单词,您可以在下一行中将其用于任何您想要的内容。
请注意,std::cin >> s
将读取文本,直到它到达第一个空白字符。幸运的是,有一些简单的方法可以获取 read an entire line from stdin 和 read everything from stdin
关于C++ 将文件名输入重定向转换为新的输出文本文件,并在新输出文件的名称后附加 .txt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55882934/
我正在尝试使用谷歌浏览器的 Trace Event Profiling Tool分析我正在运行的 Node.js 应用程序。选择点样本后,我可以在三种 View 之间进行选择: 自上而下(树) 自上而
对于一个可能是菜鸟的问题,我们深表歉意,但尽管在 SO 上研究了大量教程和其他问题,但仍找不到答案。 我想做的很简单:显示一个包含大量数据库存储字符串的 Android ListView。我所说的“很
我已经开始了一个新元素的工作,并决定给 Foundation 5 一个 bash,看看它是什么样的。在创建带有水平字段的表单时,我在文档中注意到的第一件事是它们使用大量 div 来设置样式。所以我在下
我有一个 Windows 窗体用户控件,其中包含一个使用 BeginInvoke 委托(delegate)调用从单独线程更新的第 3 方图像显示控件。 在繁重的 CPU 负载下,UI 会锁定。当我附加
我有一堆严重依赖dom元素的JS代码。我目前使用的测试解决方案依赖于 Selenium ,但 AFAIK 无法正确评估 js 错误(addScript 错误不会导致您的测试失败,而 getEval 会
我正在制作一款基于滚动 2D map /图 block 的游戏。每个图 block (存储为图 block [21][11] - 每个 map 总共 231 个图 block )最多可以包含 21 个
考虑到以下情况,我是前端初学者: 某个 HTML 页面应该包含一个沉重的图像(例如 - 动画 gif),但我不想强制客户缓慢地等待它完全下载才能享受一个漂亮的页面,而是我更愿意给他看一个轻量级图像(例
我正在设计一个小软件,其中包括: 在互联网上获取资源, 一些用户交互(资源的快速编辑), 一些处理。 我想使用许多资源(它们都列在列表中)来这样做。每个都独立于其他。由于编辑部分很累,我想让用户(可能
我想比较两个理论场景。为了问题的目的,我简化了案例。但基本上它是您典型的生产者消费者场景。 (我关注的是消费者)。 我有一个很大的Queue dataQueue我必须将其传输给多个客户端。 那么让我们
我有一个二元分类问题,标签 0 和 1(少数)存在巨大不平衡。由于测试集带有标签 1 的行太少,因此我将训练测试设置为至少 70-30 或 60-40,因此仍然有重要的观察结果。由于我没有过多地衡量准
我是一名优秀的程序员,十分优秀!