首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我想使用dev c++从file.txt打印出结构变量,但是屏幕是空白的,没有错误

问题描述: 我想使用Dev C++从file.txt打印出结构变量,但是屏幕是空白的,没有错误。

回答: 首先,确保你的代码没有编译错误,并且file.txt文件存在并且包含了正确的数据。接下来,我们可以按照以下步骤进行排查:

  1. 确保文件成功打开: 在使用文件之前,需要使用fopen函数打开文件,并检查文件是否成功打开。例如:
  2. 确保文件成功打开: 在使用文件之前,需要使用fopen函数打开文件,并检查文件是否成功打开。例如:
  3. 检查文件读取位置: 在打开文件后,需要确保文件读取位置位于文件的开头。可以使用fseek函数将文件读取位置设置为开头。例如:
  4. 检查文件读取位置: 在打开文件后,需要确保文件读取位置位于文件的开头。可以使用fseek函数将文件读取位置设置为开头。例如:
  5. 确保正确读取文件内容: 使用fscanf函数按照正确的格式从文件中读取数据,并将其存储到结构变量中。确保读取的数据类型和结构变量的类型匹配。例如:
  6. 确保正确读取文件内容: 使用fscanf函数按照正确的格式从文件中读取数据,并将其存储到结构变量中。确保读取的数据类型和结构变量的类型匹配。例如:
  7. 关闭文件: 在使用完文件后,需要使用fclose函数关闭文件。例如:
  8. 关闭文件: 在使用完文件后,需要使用fclose函数关闭文件。例如:

如果按照以上步骤进行排查,仍然无法打印出结构变量的内容,请检查以下可能的原因:

  • 文件路径错误:确保file.txt文件位于正确的路径下,并且程序能够正确访问到该文件。
  • 文件内容格式错误:确保file.txt文件中的数据按照正确的格式存储,并且与结构变量的类型匹配。
  • 结构变量赋值错误:确保结构变量的成员变量正确赋值,并且在打印之前已经进行了赋值操作。

希望以上回答对您有帮助。如果您需要更多帮助,请提供更多代码细节或错误信息,以便我们能够更准确地帮助您解决问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Shell脚本攻略04-玩转文件描述符及重定向

当命令输出文本时,这些输出文本有可能是错误信息,也可能是正常的(非错误的)输出信息。 单靠查看输出的文本本身,我们没法区分哪些是正常,哪些是错误。...当命令输出错误信息时, stderr信息就会被打印出来。...退出状态可以从特殊变量$?中获得. (在命令执行之后立刻运行echo $?,就可以打印出退出状态)。 [root@entel1 Templates]# cat cmdRW.sh #!...类似地,使用 /dev/stderr代表标准错误, /dev/stdout代表标准输出。 这些特殊的设备文件分别对应stdin、 stderr和stdout。...如果想使用特定的文件描述符,你必须将描述符编号置于操作符之前。 >等同于1>;对于>>来说,情况也类似(即>>等同于1>>)。 处理错误时,来自stderr的输出被丢弃到文件/dev/null中。

87810

CCPP输入输出函数汇总分析

.默认的标准输入流即stdio.h中定义的stdin.但是从输入流中读取字符时又 涉及到缓冲的问题,所以并不是在屏幕中敲上一个字符程序就会运行,一般是通过在屏幕上敲上回车键,然后将回车前的字符 串放在缓冲区中...getc()是C/C++标准库函数,用于从文件中读取一个字符。它的语法如下: int getc( FILE *stream ); 它接受一个文件指针作为参数,并返回读取到的字符的ASCII码值。...该函数在C++标准库中已不存在,并被证明是不安全的,因为它不对读取的数据进行长度限制,这可能导致缓冲区溢出。因此,应该使用替代函数,例如fgets()或cin。...所以要并实现结构体作为一个整体的读或写。 补充:使用二进制的基本问题是:它只能用于读在同一系统上已写的数据。...原因:要在流中做格式转换,再将结果放到内存变量中 补充:(详见CPrimerPlus P95) 如果使用%s转换说明,scanf()会读取除空白字符外的所有字符。

1.8K20
  • Perl 工作积累(不定期更新)

    =cut 多行注释 特殊变量: $$     Perl解释器的进程ID @ARGV  保存命令行参数 @_    在子程序内,这个数组变量包含传递给子程序的参数 $_           默认输入...根据上下文内容返回错误号或者错误串 $@    Perl解释器从eval语句返回的错误消息 $?     ...*$/ 如果想不用\ 去转义 /, . , 等特殊字符,可以 /\Q$var\E/ 在用 =~ 判断字符串包含时,需要注意是否包含空格等字符,特别是从文件中读出的时候,还要注意文件中的空白行 $context...7) perl 的print $log "xxx" ;  syswrite $log, "xxxx";     perl中的printf很多字符打印有问题,最好是使用syswrite来打印数据 8) >...如果字符串中只是存在单一的 \(后面没有跟 ", ', \, n, r, b 等),那么db 将不插入任何字符。

    1.4K00

    Linux入门指令(2)

    3、more指令(解决cat的一些问题) 语法: more [选项] [文件] 功能: more 指令,类似于cat 面对一个大文件的时候,使用more指令将不会再刷屏(但是打满一屏),而且可以允许我们逐行查看...并且允许我们进行简单的搜索 /(搜索内容) 但是对于上下键没有作用,只能进行enter进行下一行。...find / -name 111:从根目录开始查找包含111的文件 10、grep指令 语法: grep [选项] 搜索字符串 文件 功能: 在文件中搜索字符串,将找到的行打印出来 行过滤作用。...先将log.txt打开,从此以后从log.txt中读取而不再是键盘文件。 cat 但是现在还是入门,不太能讲清楚,以后讲清楚了我粘一下链接。...3、出现centos not find 出现这种情况通常来说不是输入错误基本上就是没有安装,那要是没有安装的话,可以直接上网上搜索 centos yum 安装 指令(所需要的指令)

    10610

    上古神器 sed 教程详解,小白也能看的懂

    接着用 sed 命令处理缓存区中的内容; 处理完毕后,把缓存区的内容送往屏幕; 接着处理下一行; 这样不断重复,直到文件末尾,文件内容并没有改变,除非你使用重定向输出或指定了 i 参数 正则表达式 sed...(二)扩展正则表达式 扩展正则表达式使用频率上没有基本表达式那么高,但依然很重要,很多情况下没有扩展正则是搞不定的,sed 命令使用扩展正则时需要加上选项 -r。 ?...2 来表示匹配的变量 {}:和基本正则中的大括号中意义相同,只不过使用时不用加 转义符号; 基本语法 先介绍下 sed 的基本语法。...隔行删除 $ sed '0~2{d}' file.txt 7. 删除所有空白行 $ sed '/^$/d' file.txt 好了,以上是 sed 命令常用的全部内容。...想要熟练掌握,只有多实践,多练习正则表达式的使用,一旦熟练掌握后,相信在日后工作中一定会产生巨大作用的。 谢谢大家,我是肖邦,欢迎关注后续的精彩内容。

    2.5K30

    如何编写一个shell脚本

    如果您使用了注释,那么即使相当长的时间内没有使用该脚本,您也能在很短的时间内明白该脚本的作用及工作原理。  变量  在其他编程语言中您必须使用变量。...the 2nd",而仅仅打印"this is the ",因为shell会去搜索变量numnd的值,但是这个变量时没有值的。...  cat file.txt: 输出文件内容到标准输出设备(屏幕)上  file somefile: 得到文件类型  read var: 提示用户输入,并将输入赋值给变量  sort file.txt:...可以从标准输入(比如命令管道)读入文本,并将结果输出到标准输出(屏幕)。该命令采用正则表达式(见参考)进行搜索。不要和shell中的通配符相混淆。...并且写一个伪脚本(framework.sh),该脚本包含了大多数脚本都需要的框架结构,是一个非常不错的主意。

    1.7K40

    【旧文重发 | 07】IC基础知识

    Linux命令,该命令将所有非空白行从文件(file1.txt)移至另一个文件(file2.txt) grep -v “^$” file1.txt > file2.txt [124] 编写一个UNIX...in C/C++ [127] 编写C代码以检测计算机中的架构是little Endian 还是 big Endian 什么是大小端请参考问题[32] #include int main...定义了全局变量和局部变量,而在函数中,优先调用的是局部变量,所以将为打印出20. [130] 下列代码中,y的值是多少?...由于“p”和“q”是指针,因此它们只不过是64位计算机中的地址。无论它们指向整数还是双精度数据类型,两者的大小均为64位(8字节)。 [135] 什么是链表?何时使用链表?...链表是由一组节点组成的数据结构,这些节点一起代表一个序列。链表是由一组节点组成的数据结构,这些节点一起代表一个序列。如果我们不知道要存储的数据量,则首选链表。

    76510

    再见了!linux、awk。。

    Hi,我是Johngo~ Linux、shell,很多初学者可能非常陌生,但是对于算法、数据、大数据相关的同学,这个又是一个不可避免的学习内容~ Shell 编程在机器学习和数据处理领域非常重要,尽管它通常不像...但是今儿咱们先来聊聊基础的内容~ # 探索 Awk 命令的语法 Awk是一种用于文本处理和数据提取的脚本语言,它基于模式匹配和操作指令的组合。 1....BEGIN 块 该块在 Awk 程序执行之前被执行,用于初始化变量或执行其他一次性的操作。它是可选的,如果没有指定 BEGIN 块,则会跳过该部分。...其中expression是要打印的内容,可以是变量、常量或表达式。 format是一个格式控制字符串,用于指定打印的格式。 2....下面是 file.txt 文件的内容: John,85,A Mary,92,B Tom,78,C 我们可以使用awk编程来实现这个目标。

    22510

    搞定Linux Shell文本处理工具,看完这篇集锦就够了

    Linux脚本大师不是人人都可以达到的,但是用一些简单的Shell实现一些常见的基本功能还是很有必要的。...下面我介绍Linux下使用Shell处理文本时最常用的工具: find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk; 提供的例子和参数都是最常用和最为实用的...; 我对shell脚本使用的原则是命令单行书写,尽量不要超过2行; 如果有更为复杂的任务需求,还是考虑python吧; 1、find 文件查找 查找txt和pdf文件 find . \( -name...比如grep,比如find; 将多行输出转化为单行输出 cat file.txt| xargs \n 是多行文本间的定界符 将单行转化为多行输出 cat single.txt | xargs -n 3...迭代每一个字符 ${string:start_pos:num_of_chars}:从字符串中提取一个字符;(bash文本切片) ${#word}:返回变量word的长度 for((i=0;i<${#word

    6.4K41

    printf 和 scanf 并没有这么简单

    输出的值默认是右对齐,即输出内容前面会有空格;如果希望改成左对齐,在输出内容后面添加空格,可以在占位符的%的后面插入一个 - 号: 限定符对小数同样有用: 如果我们想让打印出来的数总是显示正负号...当我们有了变量,我们需要给变量输入值的时候就可以使用 scanf 函数,如果需要将变量的值输出到屏幕上的时候可以使用 printf 函数,下面看一个例子: 我们在用scanf()函数的时候...我把这个过程理解为我们用取地址符向内存申请了一块空间,然后从键盘输入一个值存放到这个空间里,只有在申请了这个空间的前提下我们输入的值才能有地方可以放,整个过程就像初始化变量一样,同样都是先申请在给值。...另外,用户使用回车键,将输入分成几行,也不影响解读。 上面示例中,我随意空格、换行输入,得到的结果是一致的。...如果没有读取任何项,或者匹配失败,则返回 0。 如果在成功读取任何数据之前,发生了读取错误或者遇到读取到文件结尾,则返回常量 EOF(-1)。

    8910

    【linux学习】基本指令

    此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录; tree指令 以树状结构形式打印出目录结构 第一次是找不到这个执行命令的 yum -y install...在命令行中,重定向(Redirection)是一种将命令的输出发送到除了标准输出(屏幕)以外的其他位置(如文件或另一个程序)的方法。...例如,将 file.txt 的内容作为 grep 命令的输入: grep 'some_text' file.txt 同时重定向标准输出和标准错误 使用 &> 或 >& 符号可以同时重定向标准输出和错误输出到同一个文件中...例如: ls > all_output.txt 2>&1 或者 ls &> all_output.txt 使用特殊文件 /dev/null /dev/null 是一个特殊文件,它会丢弃所有写入其中的数据...我们可以直接用下面的方式创建新文件 >file.txt 所以,echo本身是写在显示器的文件中,现在输出或追加到新的文件中,重定向 cat 后面不接任何东西,默认从键盘文件读取内容,输入重定向从文件中读取内容

    10610

    萌新不看会后悔的C++基本类型总结(二)

    下面的结论是需要记住的:在C++中将使用这几种类型中能够存储该数的最小类型来表示,前提是该数后面没有后缀,如果有后缀,则按后缀指定的类型来存储,至于浮点数呢,C++规定过只要不加f后缀的浮点数默认都为double...// 并且需要注意的一点是虽然不可以通过这个指针修改变量的值,但是可以修改指针所指向的变量,也就是说下面是合法的。...int number_2 = 1; p = &number_2; 就好比我有一台电脑,装的是xp系统,有一天邻居小姐姐想跟我借电脑用一下,但是她觉得xp系统老掉牙了,想重装为win10系统,这时我就告诉她...一般黑框框是显示不了特殊字符的,给大家找到一个中文转unicode的网站:中文字符与Unicode字符相互转换 当使用\u6211打印出来的便是我: ?...当两个运算符的优先级是一样的话,要使用结合性进行判断: 例如: int a = 10*5/6; //由于/ 和*的优先级是一样的,这时候就应该用结合性判断是从左往右算,还是从右往左算。 ? ? ?

    72821

    Linux文本处理详细教程

    我对shell脚本使用的原则是命令单行书写,尽量不要超过2行; 如果有更为复杂的任务需求,还是考虑python吧; 1.1. find 文件查找 查找txt和pdf文件: find . \( -name...比如grep,比如find; - 将多行输出转化为单行输出 cat file.txt| xargs n 是多行文本间的定界符 将单行转化为多行输出 cat single.txt | xargs -n 3.../g' file 移除空白行 sed '/^$/d' file 变量转换 已匹配的字符串通过标记&来引用. echo this is en example | sed 's/\w+/[&]/g' $>[...也可使用双引号,使用双引号后,双引号会对表达式求值: sed 's/$var/HLLOE/' 当使用双引号时,我们可以在sed样式和替换字符串中指定变量; eg: p=patten r=replaced...迭代每一个字符 ${string:start_pos:num_of_chars}:从字符串中提取一个字符;(bash文本切片) ${#word}:返回变量word的长度 for((i=0;i<${#word

    4.4K20

    Linux Shell 文本处理工具集锦

    我对shell脚本使用的原则是命令单行书写,尽量不要超过2行; 如果有更为复杂的任务需求,还是考虑python吧; find 文件查找 查找txt和pdf文件 find . \( -name "*.txt...match_patten file // 默认访问匹配行 常用参数 -o 只输出匹配的文本行 VS -v 只输出没有匹配的文本行 -c 统计文件中包含文本的次数 grep -c "text" filename...比如grep,比如find; 将多行输出转化为单行输出 cat file.txt| xargs \n 是多行文本间的定界符 将单行转化为多行输出 cat single.txt | xargs -n 3.../text/replace_text/g' file 默认替换后,输出替换后的内容,如果需要直接替换原文件,使用-i: seg -i 's/text/repalce_text/g' file 移除空白行...}:从字符串中提取一个字符;(bash文本切片) ${#word}:返回变量word的长度 for((i=0;i<${#word};i++)) do echo ${word:i:1); done Posted

    3.3K70

    生信人的自我修养:Linux 命令速查手册(全文引用)

    >, >> - 输入输出重定向 Linux 中常用重定向操作符有: 标准输入(/dev/stdin):代码为 0, 使用<或<< 标准输出(/dev/stdout):代码为 1,使用>(覆盖)或>>(...追加) 标准错误输出(/dev/stderr):代码为 2,使用 2>或 2>> &> 标准输出和错误输出同时重定向 /dev/null 代表垃圾箱,不想要保存的东西都可以重定向到这里 输出重定向就是将命令的结果重定向到文件.../run.sh &> /dev/null # 丢弃标准输出和标准错误信息 输入重定向是将文件作为输入的来源,而不是键盘 command 的内容作为command的输入 command...但是很多时候文件是从 Windows 或 Mac 系统上传到 Linux 服务器上的,这可能导致文件格式不兼容,原因是不同平台生成的文本文件的换行符不一样。...,也可以是正则表达式 常用参数 -F value 设置域分隔符,相当于给 FS 内置变量赋值 -v var=value 将变量 value 的值赋给程序变量 var,-v 可以多次使用 记录与字段 记录是一次读入的内容

    4K40

    【C++初阶】类和对象修炼上

    ps: 访问限定符限制的是域外面能不能访问,在类里面,只要是共有的,无论是成员变量还是成员函数,都可以访问. 5.声明和定义分离 先来看一个问题:下图的语法错误原因是什么?...即使成员变量使用了访问限定符public修饰,主函数中_a使用了域作用限定符A限定,但是因为这时候的 _a只是一种声明,声明的话就意味着此时并没有开辟空间,因此并不能存放数值1;就好比是类只是图纸,不能住人...ps: 声明和定义分离:方便浏览类的结构 域作用限定符限定:防止命名冲突 缺省值声明和定义只在声明中写 6.封装 C++的三大特性:封装,继承,多态 但是C++并不只是有这几个特性,毕竟四大名著实际上有很多名著...:成员函数并没有存储在每一个实例化出的对象中,所以,对象/类的大小就只是包括成员变量的大小之和,当然要满足"内存对齐规则" 只是包括成员变量的话,其实就是和C语言中struct结构体中的内存对齐规则一样...那里我们知道了成员函数存储的位置是公共代码段,成员函数是共享使用的: C语言中对于打印数组1和数组2,只需显式传入各自的数组名和数组大小即可打印出各自的数组.

    69640

    生信人的自我修养:Linux 命令速查手册

    >, >> - 输入输出重定向 Linux 中常用重定向操作符有: 标准输入(/dev/stdin):代码为 0, 使用<或<< 标准输出(/dev/stdout):代码为 1,使用>(覆盖)或>>...(追加) 标准错误输出(/dev/stderr):代码为 2,使用 2>或 2>> &> 标准输出和错误输出同时重定向 /dev/null 代表垃圾箱,不想要保存的东西都可以重定向到这里 输出重定向就是将命令的结果重定向到文件.../run.sh &> /dev/null # 丢弃标准输出和标准错误信息 输入重定向是将文件作为输入的来源,而不是键盘 command 的内容作为command的输入...但是很多时候文件是从 Windows 或 Mac 系统上传到 Linux 服务器上的,这可能导致文件格式不兼容,原因是不同平台生成的文本文件的换行符不一样。...,也可以是正则表达式 常用参数 -F value 设置域分隔符,相当于给 FS 内置变量赋值 -v var=value 将变量 value 的值赋给程序变量 var,-v 可以多次使用 记录与字段 记录是一次读入的内容

    7.4K22

    编写快速安全Bash脚本的建议

    但是,经过今天的思考之后,我认为明确整理下bash编程语言的一些基础知识是有用的。bash编程语言与我使用过的其他编程语言有着很大的不同。...使用${}引用变量 有时某些变量,内容为file.txt,并且我想这样使用它: mv $MYVAR $MYVAR__bak # wrong! 这段代码是无法工作的!...我基本上从来没有使用过这样的函数(不像我写的其他编程语言),我从来没有使用过局部变量。 for循环 以下是我在bash中编写循环的方法。 此循环将从1打印到10。...你也可以写while循环,但我从来没有这样写过。 有个很酷的事情是你可以遍历另一个命令的输出。seq 1 10 将数字从1到10(每行一个)打印,这个for循环只是提取该输出并遍历它。...说到后悔 - 如果你不小心在错误的终端启动一个进程,Nelson Elhage 有一个很棒的项目叫做reptyr,可以保存你的进程并将其移到屏幕会话或者某些其他东西中。

    1.8K80
    领券