for-这个 getline函数 里面lim怎么回事?还有第一次执行s[i]=c;时,i的值是多少

问题描述

这个 getline函数 里面lim怎么回事?还有第一次执行s[i]=c;时,i的值是多少
#include
#define MAXLINE 1000
int getline( char line[]int maxline);
void copy(char to[]char from[]);
main()
{
int len;
int max;
char line[MAXLINE];
char longest[MAXLINE];
max=0;
while((len=getline(lineMAXLINE))>0)
if(len>max)
{
max=len;
copy(longestline);
}
if(max>0)
printf(""%s""longest);
return 0;
}
int getline(char s[]int lim)
{
int ci;
for(i=0;i<lim-1&&(c=getchar())!=EOF&&c!='n';++i)
s[i]=c;
if(c=='n')
{
s[i]=c;
++i;
}
s[i]='';
return i;
}
void copy(char to[]char from[])
{
int i;
i=0;
while(( to[i]= from[i])!='')
++i;
}

解决方案

第一次执行s[i]=c;
i=0 c是读取的第一个字符
lim表示缓冲区的长度

这些自己调试下就知道了。

解决方案二:
你的意思应该是for循环的语句顺序吧
http://blog.csdn.net/tandesir/article/details/8217082

时间: 2024-09-17 04:01:29

for-这个 getline函数 里面lim怎么回事?还有第一次执行s[i]=c;时,i的值是多少的相关文章

iostream-小白问c++中关于getline函数的问题

问题描述 小白问c++中关于getline函数的问题 问题如图上的注释,为什么一定要在循环体之前加一个getline函数才能让vector中第一个元素读入字符串,否则vector中第一元素就是空字符串? #include #include #include using namespace std; int main() { int num; cin>>num; //num is the number of telephone numbers to be read string line; ve

无-用java中的setRGB()函数处理像素时,像素值与处理结果一样,这是怎么回事?

问题描述 用java中的setRGB()函数处理像素时,像素值与处理结果一样,这是怎么回事? int rgb1=((allRGB[i][x+1][3]* 256 + allRGB[i][x+1][4]) * 256) + allRGB[i][x+1][5]; bimageIO[i].setRGB(allRGB[i][x+1][0]allRGB[i][x+1][1] rgb1);其中allRGB[i][x+1][0]图像的x坐标其中allRGB[i][x+1][1]图像的y坐标

C++的get()函数与getline()函数使用详解_C 语言

C++ get()函数读入一个字符 get()函数是cin输入流对象的成员函数,它有3种形式:无参数的,有一个参数的,有3个参数的. 1) 不带参数的get函数 其调用形式为 cin.get() 用来从指定的输入流中提取一个字符(包括空白字符),函数的返回值就是读入的字符. 若遇到输入流中的文件结束符,则函数值返回文件结束标志EOF(End Of File),一般以-1代表EOF,用-1而不用0或正值,是考虑到不与字符的ASCII代码混淆,但不同的C ++系统所用的EOF值有可能不同. [例]

c++-C++随机读取文件,不用getline()函数怎么做

问题描述 C++随机读取文件,不用getline()函数怎么做 在文件保存数据,文件名为inputfile.txt,文件中的数据格式为: (a,n)-(a,n)(0,0) (a,n)-(a,n)(0,0) AND(#,#) 其中,a是double型数据,n是int型数据,两数之间使用逗号分隔,并用括号括起来.随机读取文件,要求以(0,0)分别作为第一次和第二次读取的结束.以(#,#)作为全部数据读取的结束标志.不用getline()函数,怎么做: 解决方案 文件读取之getline函数C++依次

基于getline()函数的深入理解_C 语言

我在网上搜了半天getline()函数,大多针对C++的,重载函数比较多,云里雾里的,而且没有实例,反正就是没有自己所需要的getline()函数.所以,自己在Linux下man了一把,并做了测试.getline()函数的功能是从文件中获取行信息,即每次读取一行信息. 因为我使用getline()函数的目的是获取本地网卡信息,即eth0的信息,从而判断启动机子时是否查了网线(本来可以从驱动里做,但应用层可以搞定,就不想多做处理了,谅解). //函数原型#define _GNU_SOURCE#in

.net web vs2008的aspx页面js函数在启动谷歌浏览器调试时候自动执行

问题描述 .netwebvs2008的aspx页面js函数在启动谷歌浏览器调试时候自动执行,调用的函数都加了提示没有触发,请教. 解决方案 解决方案二:把错误信息发一下啊,应该是js报错了.解决方案三:浏览器缓存,如果不是你下载一个火狐浏览器装一个firebug,运行的时候F12,会报错误信息的

利用函数的惰性载入提高javascript代码执行效率_javascript技巧

在 javascript 代码中,因为各浏览器之间的行为的差异,我们经常会在函数中包含了大量的 if 语句,以检查浏览器特性,解决不同浏览器的兼容问题. 例如,我们最常见的为 dom 节点添加事件的函数: 复制代码 代码如下: function addEvent (type, element, fun) { if (element.addEventListener) { element.addEventListener(type, fun, false); } else if(element.a

回调函数-小弟做了一个方法,执行完毕还会再进入方法一次,求指教下原因

问题描述 小弟做了一个方法,执行完毕还会再进入方法一次,求指教下原因 小弟把代码贴到了下面,我要迭代的替换字符串中的内容,替换完毕后,方法执行到 return sb.toString(); 应该是结束了,可是我的代码在运行的时候执行了return sb.toString(); 以后又进来执行一次,分析不出来原因,还请大家赐教,不胜感激: private String parseToCk(String str) { String s1 = str.trim(); /** s1截取字符串开始部分*/

Jquery $.ajax函数外的一段代码的执行顺序_AJAX相关

今天遇到了一个很都疼的问题.在一个函数中调用了JQuery的异步函数$.ajax ,然后在$.ajax函数外之后又有一段Jquery 代码.每次都是在$.ajax之后的代码先执行. 在网上搜了许久 终于找到了原因.拿来和大家分享分享 免得以后忘记了. async:false var flag=true; //async:false代表只有在等待ajax执行完毕后才执行 $.ajax({url:"EmailCheck.ashx",async:false,data: {"emai