C ++代码拒绝运行脚本

时间:2017-03-31 16:02:19

标签: c++

我根据以下答案运行以下代码:C: read only last line of a file. No loops

{{1}}

当我通过makefile编译它时,我回来了:

  

tcp-server.cc:111:42:错误:无效转换为'char *'到'size_t {aka long unsigned int}'[-fpermissive]         ssize_t len = fread(fd,buf,max_len);                                             ^   tcp-server.cc:111:42:错误:函数'size_t fread(void *,size_t,size_t,FILE *)'的参数太少

我只是想让它读取文件的最后一行。不知道为什么这很难或为什么我得到错误。编辑后显示更新后发生的更新确实修复了一个错误,但没有修复当前的错误。

1 个答案:

答案 0 :(得分:0)

你有很多错误。以下是我注意到的几个/第一个:

" if((fd = fopen(" result.txt"," r"))!= NULL);"没有意义;您可能希望在条件为class Schedule_info arrt_accessor :name, :date1, :date2, :event def initialize arr #I would like this loop to contain all 4 attr assignments arr.each {|i| instance_variable_set(:name, i[0])} / true的情况下执行某些操作,而不仅仅是使用false结束语句。

" static const long max_len = 55 + 1;"完全没有理由;

static始终返回main - 您无法int没有返回值。

std::fread需要4个参数,但你只传递3个参数(这实际上是你在问题中提到的错误)。

"字符串答案= ..."应该是" std :: string answer = ..."。

顺便说一句:这一切看起来都很糟糕(很糟糕)C。你为什么要把它标记为C ++(除了使用main这与现代惯用语C ++无关)?

我能给你的最好建议是:1)打开所有编译器警告并认真对待它们。 2)购买并阅读 a good C++ book