从 C 中的命令行参数打开文件

2024-02-08

我希望我的 C 程序要求用户键入他们想要打开的文件的名称,并将该文件的内容打印到屏幕上。我正在学习 C 教程,到目前为止有以下代码。但是当我执行它时,它实际上不允许我输入文件名。 (我得到“按任意按钮继续”,我正在使用代码块)

我在这里做错了什么?

#include <stdio.h>

int main ( int argc, char *argv[] )
{
    printf("Enter the file name: \n");
    //scanf
    if ( argc != 2 ) /* argc should be 2 for correct execution */
    {
        /* We print argv[0] assuming it is the program name */
        printf( "usage: %s filename", argv[0] );
    }
    else
    {
        // We assume argv[1] is a filename to open
        FILE *file = fopen( argv[1], "r" );

        /* fopen returns 0, the NULL pointer, on failure */
        if ( file == 0 )
        {
            printf( "Could not open file\n" );
        }
        else
        {
            int x;
            /* Read one character at a time from file, stopping at EOF, which
               indicates the end of the file. Note that the idiom of "assign
               to a variable, check the value" used below works because
               the assignment statement evaluates to the value assigned. */
            while  ( ( x = fgetc( file ) ) != EOF )
            {
                printf( "%c", x );
            }
            fclose( file );
        }
    }
    return 0;
}

这将从标准输入读取文件名。也许您只想在文件名未作为命令行的一部分提供时执行此操作。

int main ( int argc, char *argv[] ) 
{ 
    char filename[100];
    printf("Enter the file name: \n"); 
    scanf("%s", filename);

    ...
    FILE *file = fopen( filename, "r" );  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 C 中的命令行参数打开文件 的相关文章

随机推荐

  • 调试断言失败 c >= -1 && c <= 255

    我很难理解我的代码的运行时错误 这是我的班级作业 我认为很容易 但发生了一些奇怪的事情 我在下面发布了我的代码 这个作业的提示是创建一个程序 要求用户输入一些单词 然后它应该输出有多少个单词 我有一个朋友运行了该程序并且它有效 但是 每当我
  • 使用 Karma Runner 生成 jasmine 报告

    我想获得所有成功的茉莉花规格与业力运行的报告 就像您单独使用茉莉花时获得的那样 有办法实现这个目标吗 试试我写的这个快速插件 https github com dtabuenc karma html reporter https githu
  • jQuery 父元素内部 HTML

    我通过以下方式获取元素的内部 HTML this context innerHTML 然后我得到父内部 HTML this parent context innerHTML 但这段代码返回相同的值 任何想法有什么问题吗 要获取元素的内容 则
  • CMake 顶级 Xcode 项目属性

    我使用 Cmake 和 Xcode 来生成一个 c c 项目 my project 和一些 c c 目标 一个是二进制文件 其余的是库 我的 CMakeLists txt 看起来像这样 project my project add subd
  • 在多个列表段落上循环 Word 宏会导致内存问题

    我遇到了一个相当简单的 Microsoft Word vba 宏问题 该宏旨在解决当我们从 Word 文档创建 PDF 版本时我们在列表缩进中遇到的一些问题 该宏基本上循环遍历文档中的每个列表 并且对于与列表关联的每个列表段落 它设置列表模
  • 页面必须填满整个ViewPager2(使用match_parent)

    我有一个项目布局 其中显示图像 产品名称和产品图像 我必须使用约束布局以 1 1 5 比例显示图像 但是当我加载小图像时 下面的文本不显示 下面是我的项目 XML 代码
  • 将图像拖放到网页中并使用 HTML 文件 API 自动调整图像大小

    我想创建网页 允许用户将图像拖放到页面各个部分的框中 以便他们可以打印带有图像的页面 我希望图像在放入框中时自动调整大小 我结合了一些代码http html5demos com file api http html5demos com fi
  • Git Bash for Windows 显示/期望带有正斜杠的文件路径,没有驱动器冒号

    我安装了 Git 扩展 它会自动下载并安装适用于 Windows 的 Git 当我使用 Git Bash 时 它显示文件路径为 c whatever folder 而不是 C whatever folder 如果我粘贴来自 Windows
  • 如何将 rst.FindFirst 与 rst.NoMatch 一起使用?

    我的代码除了这一行之外都有效 FindFirst DONOR CONTACT ID strTemp2 我希望我的代码检查是否存在一条记录 其中存在特定的 DONOR CONTACT ID 因为存在多个具有相同 DONOR CONTACT I
  • 性能问题:ON DUPLICATE KEY UPDATE 与 UPDATE (MySQL)

    INSERT INTO ON DUPLICATE KEY UPDATE 和 UPDATE 之间有性能差异吗 如果我知道可以更新的值 我应该使用更新还是它并不重要 它们是有区别的 The INSERT查询必须检查每一列的约束 以查看添加该行是
  • 将字符串转换为json字符串并在R中解析

    我有一个数据 其中一列为 json 字符串 reservation reasons 1592 name gt jorge value gt MX name gt Billing phone number value gt 1123 name
  • d3.js 右对齐嵌套条形图

    我正在与这个 d3 js 示例 http bl ocks org mbostock 1283663我希望将图表的整个方向更改为从右到左 我能够反转 x 轴刻度 var x d3 scale linear range width 0 以及 y
  • 在 Python 中打印不带换行符(但带空格)的列表

    我正在尝试使用打印不带换行符的列表的值sys stdout write 它工作得很好 但唯一的问题是我想将每个值与另一个值隔开 换句话说 而不是123 我想1 2 3 我在网站上寻找解决方案 但没有找到涉及列表的内容 当我添加 to sys
  • multiDexEnabled 不起作用

    我有一个相当大的android项目 该项目仍然可以编译 但是当我尝试编译测试时出现错误 Execution failed for task app dexDebugTest trouble writing output Too many m
  • Ruby 中的“if (a == b || c == b)”语句可以做得更短吗

    我有一段 Ruby 代码 如下所示 def check if a b c b execute some code b the same variable end end 这可以写成这样 def check if a c b this doe
  • 预期的 ';'在声明末尾 /vector /c++

    当我尝试初始化一个vector of ints 我总是收到此错误 预期的 在声明结束时 我使用了 C Primer 中的原始代码 vector
  • .NET:阻止 XmlDocument.LoadXml 检索 DTD

    我有以下代码 C 它花费太长时间并且抛出异常 new XmlDocument LoadXml
  • Android 捕获视频 mediaRecorder.start() 失败 -19

    我需要录制视频并保存 但出现错误start 媒体记录器方法 失败 19 这个错误应该是什么 文档中没有对此进行评论 第二天我正在与这个错误作斗争 我尝试了多个代码 谷歌教程 英特尔示例 我在网络上找到了所有代码 但无法使其中任何一个工作 请
  • SQL,什么聚合逻辑会产生不同的结果?

    SQL1 返回具有聚合名称的行 而 SQL2 返回非聚合名称 问题是执行这两个SQL时聚合逻辑有什么区别 谢谢 SQL1 SELECT name CASE WHEN COUNT CASE WHEN course SQL THEN 1 END
  • 从 C 中的命令行参数打开文件

    我希望我的 C 程序要求用户键入他们想要打开的文件的名称 并将该文件的内容打印到屏幕上 我正在学习 C 教程 到目前为止有以下代码 但是当我执行它时 它实际上不允许我输入文件名 我得到 按任意按钮继续 我正在使用代码块 我在这里做错了什么