从文件中读取为 char 数组

2024-03-08

我正在从文件中读取,当我读取时,它会逐行读取并打印它

我想要的正是我想要一个 char 数组来保存文件中的所有字符并打印一次,

这是我的代码

if(strcmp(str[0],"@")==0)
        {
            FILE *filecomand;
            //char fname[40];
            char line[100];
            int lcount;
            ///* Read in the filename */
            //printf("Enter the name of a ascii file: ");
            //fgets(History.txt, sizeof(fname), stdin);

            /* Open the file.  If NULL is returned there was an error */
            if((filecomand = fopen(str[1], "r")) == NULL) 
            {
                    printf("Error Opening File.\n");
                    //exit(1);
            }
            lcount=0;
            int i=0;
            while( fgets(line, sizeof(line), filecomand) != NULL ) {
                /* Get each line from the infile */
                    //lcount++;
                    /* print the line number and data */
                    //printf("%s", line);  

            }

            fclose(filecomand);  /* Close the file */

您需要确定文件的大小。一旦你有了这个,你就可以分配一个足够大的数组并一次性读取它。

有两种方法可以确定文件的大小。

Using fstat:

struct stat stbuffer;
if (fstat(fileno(filecommand), &stbuffer) != -1)
{
    // file size is in stbuffer.st_size;
}

With fseek and ftell:

if (fseek(fp, 0, SEEK_END) == 0)
{
    long size = ftell(fp)
    if (size != -1)
    {
        // succesfully got size
    }

    // Go back to start of file
    fseek(fp, 0, SEEK_SET);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从文件中读取为 char 数组 的相关文章

  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 总和不小于 key 的数组的最小子集

    给定一个数组 假设为非负整数 我们需要找到最小长度子集 使得元素之和不小于 K K 是作为输入提供的另一个整数 是否有可能找到时间复杂度为 O n n 的大 oh 的解决方案 我目前的想法是这样的 我们可以在 O n log n 中对数组进
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • 无限循环与无限递归。两者都是未定义的吗?

    无副作用的无限循环是未定义的行为 看here https coliru stacked crooked com view id 24e0a58778f67cd4举个例子参考参数 https en cppreference com w cpp
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 为什么 isnormal() 说一个值是正常的,而实际上不是?

    include
  • C 函数 time() 如何处理秒的小数部分?

    The time 函数将返回自 1970 年以来的秒数 我想知道它如何对返回的秒数进行舍入 例如 对于100 4s 它会返回100还是101 有明确的定义吗 ISO C标准没有说太多 它只说time 回报 该实现对当前日历时间的最佳近似 结
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri

随机推荐

  • PHP isset 用于数组元素,而变量不是数组

    a a echo isset a b 此代码返回 1 为什么 字符串字符可以通过其偏移量来引用 使用类似于 a 0 的语法作为第一个字符 例如 string Hello echo string 1 echoes e 所以 PHP 识别 a
  • Rails 仅在页面重新加载后才加载我的 javascript

    我在 Rails 中遇到这个问题 当我进入页面时 我的 javascript 未加载 我必须在输入页面后重新加载页面 然后才能加载 这是我的 javascript 文件的样子 function initPage window bind pa
  • 使用首选项屏幕主题

    我想要更改我正在开发的应用程序的首选项屏幕的外观 在某些手机上 首选项非常半透明 很难阅读首选项方案 因此我将更改它的视觉效果 我的问题是如何将主题应用于首选项方案 或者如果失败了 我如何更改显示的各种首选项的文本颜色 在我当前的版本中 我
  • Netbeans 9/10/11 无法运行程序“cmd”

    我将 NetBeans 11 解压缩到C netbeans 安装了几个版本的JDKC java并在 NetBeans 中创建一个测试类 其中包含一个 main 方法和一行代码System out print hello world 当我点击
  • 缩放以适合 LeafletJS 地图上的所有标记

    在将一系列标记添加到 LeafletJS 地图后 是否可以让 Leaflet 缩放并重新调整其焦点以显示每个标记 我懂了很多类似的问题 https stackoverflow com questions 16416041 zoom to f
  • 如何将 Unicode 文本转换为位图

    我需要将包含 Unicode 字符的文本转换为也可以具有透明背景的位图 我发现并尝试了不同的帖子 例如this https stackoverflow com questions 18838037 drawing text to a bit
  • 以 root 而不是 Docker 中的当前用户身份创建的挂载文件夹

    尝试从以下位置将卷安装到我的容器docker run命令 似乎该文件夹始终以 root 用户而不是容器用户身份创建 这使得我缺乏对该文件夹的权限 无法创建或写入用于日志记录的文件 使用此命令进行一些测试 docker run it entr
  • Enum.GetValues() 返回类型

    我读过的文档指出 给定枚举的类型 System Enum 的 GetValues 方法将返回给定枚举基本类型的数组 即 int byte 等 但是 我一直在使用 GetValues 方法 并且我不断返回的是一个枚举类型的数组 我错过了什么吗
  • 使用密码加密消息时,crypto-js 使用的 AES 参数和内部执行的步骤是什么?

    背景 我正在开发的应用程序应该可以离线工作 我应该在java服务器端使用密码作为密钥来加密一些文本数据 加密的数据被传递到 HTML5 页面 并在客户端使用 crypto js 库对服务器加密的数据进行解密 我的问题 为了以客户端可以使用
  • java.security.cert.CertificateParsingException:签名字段无效

    我正在尝试阅读X509 certificate FileInputStream fr new FileInputStream suresh pfx CertificateFactory cf CertificateFactory getIn
  • 在单个 Linux 服务器下托管多个 ASP.NET Core Web 应用程序

    我是 ASP NET Core 的新手 我阅读了整个微软官方文档并能够在Linux Apache服务器上托管该应用程序 但我想在一个 IP 地址下托管多个 ASP NET Core Web 应用程序 请任何人在这里发布解决方案 提前致谢 T
  • 无法解析 Android 数据绑定类

    使用数据绑定时 我无法获取类MainActivityBinding按照数据绑定指南 https developer android com tools data binding guide html 我的布局名称是activity main
  • Angular TypeError:name.replace 不是 ng 风格的函数

    我是 Angular 新手 并且不断在控制台中收到以下错误TypeError name replace is not a function 我不确定到底是什么原因造成的 但似乎是由ng style声明 也许与驼峰命名法有关 我不明白的部分是
  • PostgreSQL 中的窗口函数跟踪日期

    我正在尝试编写一个查询来将给定计算机今天的平均连接数与 7 到 14 天前的平均连接数进行比较 我认为这最好由窗口函数处理 但我无法获得正确的日期语法 假设我有一个名为 iptable 的 IP 地址和连接记录表 其中包含 soucreip
  • 如何使用 Typescript 的引用和构建模式将 Mono 存储库编译为无服务器捆绑包?

    Typescript 最近引入了一项与 monorepos 配合使用的新功能 引用 通过指定引用 您可以使用以下命令构建所有相互依赖的包tsc b 另请参阅此博客文章 https blogs msdn microsoft com types
  • Swift 3 闭包重载解析

    我对 Swift 3 中的函数重载解析和闭包感到困惑 例如 在代码中 func f
  • 多个项目使用同一网络的 Docker DNS

    我有以下内容docker compose yml file version 3 services frontend image alpine command tail f dev null networks shared default b
  • 下面这段代码中 ngInject 做了什么?

    AngularJS 控制器代码 function AuthConfig stateProvider httpProvider ngInject Define the routes stateProvider state app login
  • 返回 *this 和 this 之间的区别 - C++

    Class A Code A operator code return A operator code return 我什么时候应该回来 this or this 我明白this是一个指针 并且 this是指针的取消引用 但是当函数需要按引
  • 从文件中读取为 char 数组

    我正在从文件中读取 当我读取时 它会逐行读取并打印它 我想要的正是我想要一个 char 数组来保存文件中的所有字符并打印一次 这是我的代码 if strcmp str 0 0 FILE filecomand char fname 40 ch