错误:格式“%s”需要“char *”类型的参数,但参数 2 的类型为“int”[-Wformat=]

2023-12-02

我目前正在尝试做自己的 shell,它必须是多语言的。 所以我尝试实现一个读取 .txt 文件中的行的函数。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


// globals
char lang[16] = {'t','r','y'};
char aMsg[512];

// functions
void takeFile() {
    int i =0;
    char namFil[32];
    char lg[16];
    FILE * file;
    char tmp[255];
    char * line = tmp;
    size_t len = 0;
    ssize_t read;


    strcpy(namFil,"/media/sf_Projet_C/");
    strcpy(lg,lang);
    strcat(lg, ".txt");
    strcat(namFil, lg);
    file = fopen(namFil, "r");
    printf("%s\n", namFil);

    while((read = getline(&line,&len, file)) != -1) {
        aMsg[i] = *line;
    i++;
    }
}

enum nMsg {HI, QUIT};

int main(void) {
    takeFile();
    printf("%s\n%s\n", aMsg[HI], aMsg[QUIT]);
}

我使用的是 win7,但我在虚拟机上使用 gcc 进行编译。

我有一个警告说:

format'%s' expects argument of type 'char *', but argument 2 (and 3) has type 'int' [-Wformat=]

我尝试使用 %d 而不是 %s 执行程序,它会打印数字。

我不明白是什么将我的 aMsg 转换为 int 。

我的 try.txt 文件只是:

Hi
Quit

文本文件的内容与警告无关,该警告是在程序运行之前由编译器生成的。它对这个声明表示抱怨:

printf("%s\n%s\n", aMsg[HI], aMsg[QUIT]);

全局变量aMsg是一个数组char, so aMsg[HI]指定单个char。在此背景下,其价值被提升为int在传递给之前printf(). The %s字段描述符需要一个类型的参数char *然而,GCC 足够聪明,可以识别出您传递的内容是不兼容的。

也许你心里有过

printf("%s\n%s\n", &aMsg[HI], &aMsg[QUIT]);

或什至同等的

printf("%s\n%s\n", aMsg + HI, aMsg + QUIT);

但尽管这些是有效的,但我怀疑它们不会产生您真正想要的结果。特别是,考虑到您指定的输入数据和程序的其余部分,我希望输出是

HQ
Q

如果您想读入并回显输入文件的全部内容,那么您需要一种完全不同的方法来读入和写出数据。

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

错误:格式“%s”需要“char *”类型的参数,但参数 2 的类型为“int”[-Wformat=] 的相关文章

  • mfence 和 asm 易失性 ("" : : : "内存") 的区别

    据我了解 mfence是硬件内存屏障 而asm volatile memory 是编译器障碍 但是 可以asm volatile memory 用来代替 mfence 我感到困惑的原因是这个链接 http gcc gnu org ml gc
  • boost::multi_index_container 复合键中的 equal_range 与比较运算符

    我正在尝试从多索引容器查询结果 其中值类型是三个元素的结构 第一个值已给出 但第二个和第三个值必须大于或小于查询参数 经过搜索后 我发现必须实现自定义密钥提取器 并且这里的一些链接建议相同 但我无法实现它 boost multi index
  • ROWNUM 的 OracleType 是什么

    我试图参数化所有现有的 sql 但以下代码给了我一个问题 command CommandText String Format SELECT FROM 0 WHERE ROWNUM lt maxRecords command CommandT
  • FFMPEG Seeking 带来音频伪影

    我正在使用 ffmpeg 实现音频解码器 在读取音频甚至搜索已经可以工作时 我无法找到一种在搜索后清除缓冲区的方法 因此当应用程序在搜索后立即开始读取音频时 我没有任何工件 avcodec flush buffers似乎对内部缓冲区没有任何
  • SSH 主机密钥指纹与模式 C# WinSCP 不匹配

    我尝试通过 WinSCP 使用 C 连接到 FTPS 服务器 但收到此错误 SSH 主机密钥指纹 与模式不匹配 经过大量研究 我相信这与密钥的长度有关 当使用 服务器和协议信息 下的界面进行连接时 我从 WinSCP 获得的密钥是xx xx
  • Cygwin 下使用 CMake 编译库

    我一直在尝试使用 CMake 来编译 TinyXML 作为一种迷你项目 尝试学习 CMake 作为补充 我试图将其编译成动态库并自行安装 以便它可以工作 到目前为止 我已经设法编译和安装它 但它编译成 dll 和 dll a 让它工作的唯一
  • 如何在 WPF RichTextBox 中跟踪 TextPointer?

    我正在尝试了解 WPF RichTextBox 中的 TextPointer 类 我希望能够跟踪它们 以便我可以将信息与文本中的区域相关联 我目前正在使用一个非常简单的示例来尝试弄清楚发生了什么 在 PreviewKeyDown 事件中 我
  • 使用 Google Analytics API 在 C# 中显示信息

    我一整天都在寻找一个好的解决方案 但谷歌发展得太快了 我找不到有效的解决方案 我想做的是 我有一个 Web 应用程序 它有一个管理部分 用户需要登录才能查看信息 在本节中 我想显示来自 GA 的一些数据 例如某些特定网址的综合浏览量 因为我
  • 按字典顺序对整数数组进行排序 C++

    我想按字典顺序对一个大整数数组 例如 100 万个元素 进行排序 Example input 100 21 22 99 1 927 sorted 1 100 21 22 927 99 我用最简单的方法做到了 将所有数字转换为字符串 非常昂贵
  • 编译的表达式树会泄漏吗?

    根据我的理解 JIT 代码在程序运行时永远不会从内存中释放 这是否意味着重复调用 Compile 表达式树上会泄漏内存吗 这意味着仅在静态构造函数中编译表达式树或以其他方式缓存它们 这可能不那么简单 正确的 他们可能是GCed Lambda
  • 是否有比 lex/flex 更好(更现代)的工具来生成 C++ 分词器?

    我最近将源文件解析添加到现有工具中 该工具从复杂的命令行参数生成输出文件 命令行参数变得如此复杂 以至于我们开始允许它们作为一个文件提供 该文件被解析为一个非常大的命令行 但语法仍然很尴尬 因此我添加了使用更合理的语法解析源文件的功能 我使
  • 网络参考共享类

    我用 Java 编写了一些 SOAP Web 服务 在 JBoss 5 1 上运行 其中两个共享一个类 AddressTO Web 服务在我的 ApplycationServer 上正确部署 一切都很顺利 直到我尝试在我的 C 客户端中使用
  • 什么是 C 语言的高效工作流程? - Makefile + bash脚本

    我正在开发我的第一个项目 该项目将跨越多个 C 文件 对于我的前几个练习程序 我只是在中编写了我的代码main c并使用编译gcc main c o main 当我学习时 这对我有用 现在 我正在独自开展一个更大的项目 我想继续自己进行编译
  • EPPlus Excel 更改单元格颜色

    我正在尝试将给定单元格的颜色设置为另一个单元格的颜色 该单元格已在模板中着色 但worksheet Cells row col Style Fill BackgroundColor似乎没有get财产 是否可以做到这一点 或者我是否必须在互联
  • 如何构建印度尼西亚电话号码正则表达式

    这些是一些印度尼西亚的电话号码 08xxxxxxxxx 至少包含 11 个字符长度 08xxxxxxxxxxx 始终以 08 开头 我发现这个很有用 Regex regex new Regex 08 0 9 0 9 0 9 0 9 0 9
  • 方法参数内的变量赋值

    我刚刚发现 通过发现错误 你可以这样做 string s 3 int i int TryParse s hello out i returns false 使用赋值的返回值是否合法 Obviously i is but is this th
  • 在 ASP.NET 中将事件冒泡为父级

    我已经说过 ASP NET 中的层次结构 page user control 1 user control 2 control 3 我想要做的是 当控件 3 它可以是任何类型的控件 我一般都想这样做 让用户用它做一些触发回发的事情时 它会向
  • Bing 地图运行时错误 Windows 8.1

    当我运行带有 Bing Map 集成的 Windows 8 1 应用程序时 出现以下错误 Windows UI Xaml Markup XamlParseException 类型的异常 发生在 DistanceApp exe 中 但未在用户
  • 如何在 C# 中播放在线资源中的 .mp3 文件?

    我的问题与此非常相似question https stackoverflow com questions 7556672 mp3 play from stream on c sharp 我有音乐网址 网址如http site com aud
  • 不同类型的指针可以互相分配吗?

    考虑到 T1 p1 T2 p2 我们可以将 p1 分配给 p2 或反之亦然吗 如果是这样 是否可以不使用强制转换来完成 或者我们必须使用强制转换 首先 让我们考虑不进行强制转换的分配 C 2018 6 5 16 1 1 列出了简单赋值的约束

随机推荐

  • 不同的gdb寄存器名称

    我正在学习汇编 这是我的问题 当我使用 gdb 时 我看到具有以下名称的寄存器 Dump of assembler code for function return input 0x000000000040053d lt 0 gt push
  • ChartJS v.2 上的圆角 - 条形图(带有负值)

    我正在设计一些 Chartjs 条形图 这些图表需要在条形值 而不是其底部 处进行圆角 在大多数情况下 这意味着条形图顶部的圆角 但是也存在条形图具有负值的情况 我在这里使用了答案 如何为 Bar Chart js v2 创建圆角条 由乔丹
  • 使用 jquery 从 url 获取 url 变量以形成表单

    我有一个 html 表单 只显示价格 但不向服务器提交任何内容 现在效果很好 如何添加仅从 url 变量运行此表单的功能 这样如果您使用 url 变量进入此页面 则不必单击提交按钮 像这样的东西 www my domain com form
  • 如何在 Windows 上的 AppServ 上启用 PDO?

    我第一次尝试使用 PDO 创建一个应用程序 当我 try db new PDO mysql host localhost dbname DBname user pass catch PDOException e echo div class
  • 如何将图像/数组分成块?

    我想知道是否可以将图像分成块 例如 8x8 块 64 pixels per block 并对每个块执行直方图函数并将结果保存到新图像中而不是单独的图像中 def apply histogram block h b np histogram
  • Azure SSL 证书

    我在将 SSL 证书上传到 Azure 时遇到问题 我有一份来自 GoDaddy 的高级证书 该证书去年一直在 IIS 中运行 当我们迁移到 Azure 时 我将其导出到 PFX 转到 Azure 将其添加到我的 Web 应用程序 并收到以
  • 从自己的网络服务器下载 apk

    我在从我自己的网络服务器下载 Android 应用程序时遇到问题 首先 我使用 javascript 发送 html 内容 要求 Android 手机打开我的下载链接 Android 手机收到此 javascript 将打开下载 URL 在
  • 如何在 Bootstrap 3 中使用固定标题(导航栏)向下滚动表格行时将表格标题(thead)固定在顶部?

    引导布局fixed navbar 表格中有很多行 Issue 当我滚动页面导航栏时 它会在那里 因为它是固定的 当我滚动更多时 我希望表头固定在导航栏下 并且表 表体 的内容在没有滚动条的情况下滚动 像这样的东西 Codepen 小提琴 引
  • 禁用 Word 2010 中的“另存为”按钮

    我有以下代码 应该禁用 Word 2010 中的 另存为 按钮 下面的方法正在Document Startup event private void DisableSaveAsButton Object MenuBar 40 Object
  • tkinter 如何将小部件向右对齐,而与左侧小部件的长度无关?

    我想将条目小部件向右对齐 而与左侧标签的宽度无关 ID 标题的宽度应该不重要 无论标题的宽度是多少 条目小部件都应该对齐 这是我的代码 import tkinter as tk from tkinter import ttk root tk
  • 如何在Android中将两个音频文件合并为一个[关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我想合并两个音频文件 A音频文件 B音频文件 AB音频文件 经过一番搜索后 我认为以下步骤会起作用 使用 AudioTrack 从音频文件中解码 PCM 结合PCM 上述步骤是否正确 如果
  • Facebook 嵌入视频与 iframe 无法正常工作

    我们使用 iframe 在我们的网站中嵌入 Facebook 视频 之前工作正常 但从最近几天开始 网站无法加载视频 我们也尝试过使用简单的网页 但没有成功 下面是我们正在使用的代码 如果有人可以提供快速帮助 请告诉我 只需使用此链接 这对
  • 有效地替换字符串中的所有重音字符?

    为了一个穷人的实施near 客户端的排序规则正确排序我需要一个 JavaScript 函数来实现高效的字符串中的单个字符替换 这就是我的意思 请注意 这适用于德语文本 其他语言的排序不同 native sorting gets it wro
  • Jstree:dblclick 绑定参数数据未定义

    我尝试使用好的库jstree但我有一些奇怪的问题dblclick捆绑 这是我的代码 basic html jstree themes url http mywork shinframework shinfw themes redmond c
  • 嵌套 INotifyPropertyChanged 类不起作用

    得到了一些代码 得到了意想不到的结果 如果我用 Myclass 替换嵌套类 那就没有问题了 我想念什么 我是否绑定文本 到其他控件 或绑定图像并不重要 xaml代码
  • Android:是否可以在屏幕上同时创建底部和顶部选项卡?

    我想知道是否可以在顶部和底部设置不同的选项卡 单击时会导致不同的活动 谷歌搜索但没有找到任何相关内容 Thanks Android 的好处是几乎所有你想做的事情都可以实现 如果我们要更改您的 XML 我们会将其更改为以下内容
  • 用于淡入和淡出视图的 Angular 4 动画

    我只是希望视图在路线更改时淡入和淡出 我似乎已经正确设置了组件 但我认为需要使动画语法正确 这是我目前的动画尝试 我将此动画导入到我的组件中 import trigger state animate style transition fro
  • 使用 PHP API 进行 FB.login

    我已经设置了一个 Canvas 页面 单击表单提交按钮即可实现 FB login 在以下请求期间 它尝试通过 facebook gt api me 来自 Github 的最新 API 版本 访问用户数据 它可以在 Firefox 和 Chr
  • 检测序列参数的正确方法?

    我想编写一个接受参数的函数 该参数可以是序列或单个值 value的类型有str int等 但是我don t希望将其限制为硬编码列表 换句话说 我想知道参数 X 是一个序列还是我必须转换为序列以避免以后出现特殊情况的东西 我可以 type X
  • 错误:格式“%s”需要“char *”类型的参数,但参数 2 的类型为“int”[-Wformat=]

    我目前正在尝试做自己的 shell 它必须是多语言的 所以我尝试实现一个读取 txt 文件中的行的函数 include