+ -
当前位置:首页 → 问答吧 → [已解决][C]编写程序一问(更新)

[已解决][C]编写程序一问(更新)

时间:2014-02-06

来源:互联网

最近有一份功课,系关於要系unix到print啲数字出黎。

咁就有个file,叫"numbers.dat",入面有一串数字
4,2,8,1,9,5

我就要写个programme,然后将佢print做
4
2
8
1
9
5

条件系要用fscenf同fgetc去做E样野
我识写read file,之后就唔识写了

#include <stdio.h>
int main()
{
FILE *MyFile;
MyFile = fopen("numbers.dat", "r");
if (MyFile != NULL)

}

希望大家可以帮帮手
---------------------------------------

我写左下面既编码,但唔知错边,个programme冇反应

#include <stdio.h>
int main (){ FILE *MyFile; int i=0; int number[50]; MyFile = fopen("numbers.dat","r"); if(MyFile != NULL) { while( fscanf(MyFile, "%d",number) != NULL) { printf("%d\n",number); i= i+2; } } fclose(MyFile);}
继续希望ching们帮帮手

[ 本帖最后由 peteraobo 於 2013-12-11 07:33 PM 编辑 ]

作者: peteraobo   发布时间: 2014-02-06

ooooooooooooooooooooooooooooooo

作者: a8d7e8   发布时间: 2014-02-06

用fscanf 就够, 唔使fgetc

作者: tenmillion   发布时间: 2014-02-06

多谢ching既回覆先!

我自己就试写左以下一堆野

#include <stdio.h>

int main ()
{
FILE *MyFile;
int i=0;
int number[50];
MyFile = fopen("numbers.dat","r");
if(MyFile != NULL)
{
while( fscanf(MyFile, "%d",number) != NULL)
{
printf("%d\n",number);
i= i+2;
}
}
fclose(MyFile);
}

但个programme唔work
我就唔知咩原因了

作者: peteraobo   发布时间: 2014-02-06

复制内容到剪贴板代码:#include <stdio.h>


int main (int argc, const char * argv[]) {

FILE *fp;
int c;
fp = fopen("numbers.dat", "r");
if (fp == NULL) {
printf("can't open file");
return -1;
}
while ((c = fgetc(fp)) != EOF) {
if (c == '\n') {
break;
} else if (c == ',') {
putchar('\n');
} else {
putchar(c);
}
}
fclose(fp);
return 0;
}

作者: lohengrin   发布时间: 2014-02-06

多谢ching你!
个code完全冇问题。

最后,如果我要计算果堆数字既总和,我应该点做?
要用到for loop?

作者: peteraobo   发布时间: 2014-02-06

init variable sm

everytime you print add to sm

when close file print sm

作者: 81299129   发布时间: 2014-02-06

引用:原帖由 peteraobo 於 2013-12-11 03:51 AM 发表
多谢ching你!
个code完全冇问题。

最后,如果我要计算果堆数字既总和,我应该点做?
要用到for loop?
早讲或者用fscanf 方便啲
复制内容到剪贴板代码:#include <stdio.h>
#include <stdlib.h>


int main (int argc, const char * argv[]) {

FILE *fp;
int c;
char buf[100] = ""; int bufLen = 0;
int sum = 0;

fp = fopen("numbers.dat", "r");
if (fp == NULL) {
printf("can't open file");
return -1;
}
while (c = fgetc(fp)) {
if (c == '\n' || c == EOF) {
buf[bufLen++] = '\0';
sum = sum + atoi(buf);
break;
} else if (c == ',') {
putchar('\n');
buf[bufLen++] = '\0';
sum = sum + atoi(buf);
bufLen = 0;
} else {
putchar(c);
buf[bufLen++] = c;
}
}
fclose(fp);
printf("\nsum is %d", sum);
return 0;
}

作者: lohengrin   发布时间: 2014-02-06

多谢ching你既回覆!
问题解决了

作者: peteraobo   发布时间: 2014-02-06

热门下载

更多