计算文件的长度不起作用(calculation of the length of the file doesn't work)

#include "stdio.h"
#include "stdlib.h"
int main()
{
    FILE *fp;
    int noOfLines =0;
    char fname[]="Rtl_Prod_Id.txt";
    printf(fname);
    fp=fopen(fname,"r");
    char ch;

    //looping for every line
    do {
        ch=fgetc(fp);
        if (ch=='\n')
            noOfLines++;
    } while(ch!=EOF);

    //line before the last line
    if (ch!='\n'&&noOfLines!=0)
        noOfLines++;
    fclose(fp);
    printf("%d",noOfLines);
    return 0;
}

我只是想计算文件中的行数。 相同并不会给我任何结果。

我正在做的可能的错误是什么?

环境:AIX和编译器:CC

谢谢

编辑:我的程序成功编译,但在执行.Out文件时,它不会出现任何问题

PS: 虽然我得到了答案。 感谢https://stackoverflow.com/users/434551/r-sahu 我改变了char ch; int ch; 但我想知道为什么? char声明有什么问题? 当我要检查'\ n'和EOF字符为什么整数呢?


#include "stdio.h"
#include "stdlib.h"
int main()
{
    FILE *fp;
    int noOfLines =0;
    char fname[]="Rtl_Prod_Id.txt";
    printf(fname);
    fp=fopen(fname,"r");
    char ch;

    //looping for every line
    do {
        ch=fgetc(fp);
        if (ch=='\n')
            noOfLines++;
    } while(ch!=EOF);

    //line before the last line
    if (ch!='\n'&&noOfLines!=0)
        noOfLines++;
    fclose(fp);
    printf("%d",noOfLines);
    return 0;
}

I am just trying to calculate the number of lines in my file . The Same doesn't not return me any result .

What are the possible mistakes which i am doing

Environment : AIX and Compiler : CC

Thanks

Edit : My program compiles succesfully but while execute the .Out file it doesn't turn up anything

P.S : Although i got the answer . thanks to https://stackoverflow.com/users/434551/r-sahu . I had change char ch; to int ch; . but i wonder why ? What is wrong in char declaration ? . As i going to check for '\n' and EOF characters why integer then ?


原文:https://stackoverflow.com/questions/23211239
2021-12-02 20:12

满意答案

这是一个疯狂的镜头,但改变了线

char ch;

int ch;

是合适的。 fgetc的返回类型是int ,而不是char


This is a wild shot but changing the line

char ch;

to

int ch;

is appropriate. The return type of fgetc is int, not char.

相关问答

更多

为什么cat 0> file不起作用(Why cat 0>file doesn't work)

语法0>file将stdin重定向到文件中(如果有意义的话)。 然后cat尝试从stdin读取并获取EBADF错误,因为stdin不再是输入流。 EBADF - fd不是有效的文件描述符或者不能读取。 请注意,重定向(<和>)由shell处理,cat不会看到0>file位。 Syntax 0>file redirects stdin into a file (if that makes sense). Then cat tries to read from stdin and gets EBADF...

我想通过deflater压缩文件,但似乎不起作用(i want to compress the file by the deflater but it seems doesn't work)

从问题看起来你正在尝试压缩任何文件。 您应该尝试理解一些概念,与Java本身无关,但需要进行数据压缩和重构。 用于数据压缩/解压缩的算法有两种类型(我的有限知识知道:)): 无损算法 ,例如: ZIP 有损算法 ,例如JPEG 在没有详细说明的情况下,您要做的就是选择一些原始数据 ,压缩它(因此占用的空间更少)并将其发送给某人。 从上面的算法列表中,您可以根据需要选择一个或另一个。 例如,如果您要求在压缩数据时没有丢失任何信息,您可能会选择无损算法(想象一下.docx文件或任何其他文档,例如计算机...

Uri编码,文件下载不起作用,以及空格(Uri encoding, file download doesn't work with , and whitespace)

这解决了它:_Response.AddHeader(“Content-Disposition”,“attachment; filename = \”“+ _fileName +”\“”); This solved it: _Response.AddHeader("Content-Disposition", "attachment;filename=\"" + _fileName + "\"");

Javascript计算功能不起作用(Javascript calculation function doesn't work)

我将尝试在一个地方识别脚本在技术上的错误。 时间计算不正确 一天有86400秒,365天有31536000秒。 如果他们不想担心价值观,你通常会看到人们做这样的事情: var minutes = 60; var hours = 60 * 60; var days = 24 * 60 * 60; var years = 365 * 24 * 60 * 60; 对不支持该方法的对象(在本例中为数字)使用indexOf() 。 其他人已经在评论和答案中指出了这一点,但基本上,如果您要调用字符串方法,则...

EF属性上的最大长度不起作用(Max Length on EF property doesn't work)

EF运行时将忽略 Max Length和Fixed Length属性。 不要指望EF会根据这些属性自动执行验证。 这些属性由EDM的其他使用者(如ASP.NET MVC 2.0和ASP.NET动态数据控件)使用,并且还用于生成数据库脚本以及StoreGeneratedPattern属性。 它们的另一个用途是当你在较低级别与EF交易时; 就像使用MetadataWorkspace类一样。 The Max Length and Fixed Length properties are ignored b...

NSInputStream的getBuffer:长度:不起作用?(NSInputStream getBuffer: length: doesn't work?)

达尔文是开源的,所以“真相就在那里”。 NSStream的源代码显示GSInetInputStream是为套接字实现NSInputStream的类,并且该类的getBuffer:length:的实现简洁地回答了问题: - (BOOL) getBuffer: (uint8_t **)buffer length: (unsigned int *)len { return NO; } 在这里找到。 Darwin is open source, so "the truth is out there"...

FileFilter不起作用(FileFilter doesn't work)

import javax.swing.filechooser.FileFilter; 这是错误的FileFilter类。 你要 import java.io.FileFilter; 代替。 import javax.swing.filechooser.FileFilter; That's the wrong FileFilter class. You want import java.io.FileFilter; instead.

计算文件的长度不起作用(calculation of the length of the file doesn't work)

这是一个疯狂的镜头,但改变了线 char ch; 至 int ch; 是合适的。 fgetc的返回类型是int ,而不是char 。 This is a wild shot but changing the line char ch; to int ch; is appropriate. The return type of fgetc is int, not char.

包装后反射不起作用(Reflection doesn't work after packing)

当所有资源都打包在jar中时,就不再有文件了。 而是使用this.class.getResource()或this.class.getResourceAsStream() 或者你可以使用一些库看到你能用反射找到包中的所有类吗? When all the resources is packed in a jar there are no files anymore. Instead use this.class.getResource() or this.class.getResourceAsStr...

写出一个zip文件在IE7中不起作用(Writing out a zip file doesn't work in IE7)

这是一个特定于IE的奇怪小错误。 基本上,当您将到期时间设置为0时,问题就出现了。 IE基本上经历了以下过程: IE确定该文件是“下载”的东西,这会导致IE打开文件下载弹出窗口。 一旦用户点击“打开”或“保存”,IE会尝试下载文件,但由于它设置为立即过期,所以IE会跳出。 将您的到期时间设置为1分钟之类的非零数字,您应该看到问题消失。 This is a weird little bug specific to IE. Basically, the problem presents itself ...

相关文章

更多

Don’t work. Be hated. Love someone.

http://halfhalf.posterous.com/dont-work-be-hated-lo ...

Java 流(Stream)、文件(File)和IO

Java 流(Stream)、文件(File)和IO Java.io包几乎包含了所有操作输入、输 ...

My W3C Custom Mapping File

[hdhw] HotKey=W Tip=Train Dragonha|cffffcc00w|r ...

用‘button’跟‘text’组合代替‘file’,选择文件后点‘submit’,‘file’的值被清空

各位大虾晚上好,我有个问题想请教你们,我想美化html的file外观,但貌似现在还不能用css直接设计 ...

PHP 中dirname(_file_)

PHP 中dirname(_file_) 2007-5-3 16:00|查看: 19256|评论: ...

xxx is not in the sudoers file解决方法

用sudo时提示&quot;xxx is not in the sudoers file. This ...

【HDFS】HADOOP DISTRIBUTED FILE SYSTEM

【HDFS】Hadoop DISTRIBUTED FILE SYSTEM THE CAST CLIEN ...

shell 脚本执行,出现错误bad interpreter: No such file or directory

出现bad interpreter:No such file or directory的原因 是文件格 ...

Hadoop HDFS Wrong FS: hdfs:/ expected file:///

HDFS是一个分布式文件系统,然而对于程序员来说,HDFS就是一个普通文件系统,Hadoop进行的底层 ...

RabbitMQ Work模式消息队列

一个生产者、多个消费者。 一个消息只能被一个消费者获取。 生产者发布消息 private ...

最新问答

更多

将十六进制的字符串转换为字符串(Convert hex-encoded String to String)

您希望将十六进制编码的数据用作AES密钥,但数据不是有效的UTF-8序列。 您可以将其解释为ISO Latin编码中的字符串,但AES(key: String, ...)初始化程序将该字符串转换回其UTF-8表示形式,也就是说,您将从开始时获得不同的关键数据。 所以你不应该把它转换成字符串。 使用 extension Data { init?(fromHexEncodedString string: String) } 方法从Swift中进行十六进制/二进制字符串转换,将十六进制编码的

将friendly_id添加到用户模型后,登录后的友好转发不起作用(Friendly forwarding after login doesn't work after adding friendly_id to the user model)

在应用程序控制器中,将redirect_back_or(path)方法更改为此方法。 def redirect_back_or(path) redirect_to session[:forwarding_url] || path session.delete(:forwarding_url) end 你有redirect_to request.referer之前负责将你重定向到最后一个url,即login_url。 我不知道为什么你要定义两个不同的方法

Qt + VS2010:由于 .dll从您的计算机丢失,程序无法启动(Qt + VS2010: The program can't start because .dll is missing from your computer)

您可能需要将有问题的DLL复制到您的可执行文件所在的文件夹中,或者确保DLL位于系统PATH中的文件夹中。 You likely need to copy the DLLs in question to the folder your executable is in, or ensure that the DLLs are located in a folder in the system's PATH.

AutoFixture使用内部setter创建属性(AutoFixture create property with internal setter)

理想情况下 ,测试不应该与类的internal成员交互,因为它们明确地从其公共API中排除 。 相反,这些成员将通过公共API启动的代码路径间接测试。 但是,如果在您的特定情况下这不可行,则可能的解决方法是从测试中明确地为内部属性赋值 。 您可以通过以下两种方式之一来实现: 通过使用InternalsVisibleTo属性将程序集中的所有内部成员公开给测试项目。 通过在特定接口中表示类的可修改状态并明确地实现它。 在您的示例中,选项1将是: // [assembly:InternalsVisib

使用Trigger.IO/PhoneGap在UIWebView中使用focus()事件自动显示键盘(Show keyboard automatically with focus() event in UIWebView using Trigger.IO/PhoneGap)

访问UIWebView不是我们在当前版本的插件中正确公开的东西(但我们很快就会支持)。 现在,如果您想尝试一下,可以添加 extern UIWebView *webView; 在插件文件的顶部,这将使您的API方法中的变量webView可用。 这将很快停止工作,所以我建议你现在只用它来测试一下。 2012年10月更新 : 该应用程序的Web视图现在通过ForgeApp : http : ForgeApp 例如: [ForgeApp sharedApp].webView Access to t

ASP.NET MVC控件(ASP.NET MVC Control)

您可以使用RadComboBox以及此处找到的此telerik社区项目提供的一些小调整。 应该在MVC中都能正常工作。 You can use the RadComboBox along with a little tweaking as provided for by this telerik community project, found here. Should all work fine in MVC.

在后期保存上下文 - 将指针保存到上下文?(Saving Context At a Later Stage - Saving Pointer To Context ? Core Data)

是的,您可以在循环后保存上下文。 它比每次迭代中的保存要好得多。 如果你看一下MagicalRecord src,你会看到MR_contextForCurrentThread总是为相同的线程返回相同的上下文,如果没有上下文的线程,MagicalRecord会创建它。 此外,您不需要传递上下文[_entityClass createInContext:context] ,只需要[_entityClass MR_createEntity] - 它将在当前线程的上下文中创建 Yes, you can

tinyMce函数用于确定弹出窗口是否已打开(tinyMce function to determine if popup is already open)

这是我要去的解决方案: 我似乎已经确认: - windowManager.open()不会像window.open()那样返回对窗口的引用 - windowManager没有内置方法来限制可以打开的实例数。 但它确实有一种方法可以将onClose函数添加到插件窗口:ed.windowManager.onClose.add(function(){alert('Closing!');}); 所以我将在onClick代码中使用一个变量来跟踪弹出窗口是否已被打开和关闭。 onClose函数将该变量标记为

使用nil调用Document.find在mongodb中无效(Calling Document.find with nil is invalid in mongodb)

OrderController #new调用OrderController#current_cart,它运行Cart.find(session [:cart_id])。 在会话开始时没有:cart_id,即session [:cart_id]为nil,你得到上面的Mongoid :: Errors :: InvalidFind异常。 请注意,当您正在抢救ActiveRecord :: RecordNotFound时,您的救援子句不会挽救该异常。 您正在使用Mongoid,而不是ActiveRec

在函数中返回postgresql查询结果(Return postgresql query result in a function)

假设您正在使用nodejs和pg模块。 正如您所说,由于查询功能是异步的,您无法直接将结果返回给调用者。 传统上,在nodejs中,调用者传递一个回调函数来处理结果或错误(如果有的话)。 在Kotlin中,这看起来像: client.query(MY_QUERY_TEMPLATE, params) { err, result -> if (err != null) { // do something with the error }