fscanf

how to ignore whitespaces in fscanf()

匿名 (未验证) 提交于 2019-12-03 00:55:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I need to use fscanf to ignore all the white spaces and to not keep it. I tried to use something like the combination between (*) and [^\n] as: fscanf(file," %*[^\n]s",); Of course it crashed, is there any way to do it only with fscanf ? code: int funct(char* name) { FILE* file = OpenFileToRead(name); int count=0; while(!feof(file)) { fscanf(file," %[^\n]s"); count++; } fclose(file); return count; } Solved ! change the original fscanf() to : fscanf(file," %*[^\n]s") ; read all the line exactly as fgets() but didnt keep it! 回答1: Your code is

关于任意输入结束的问题(转)

给你一囗甜甜゛ 提交于 2019-12-02 17:05:08
关于不确定行数的输入 有些时候 ,问题并没有给定输入数据的行数,也没有给出输入结束的标记。 问题1:将字符串大写变小写,小写变大写 输入:n行字符串,每一行字符串不超过300 输出:n行字符串。 这些题目并没有输入数据到底有多少,也没有结束标记。此时,我们该如何读入数据呢? 假设题目是以文件输入输出。则文件的末尾必有一个文件结束标记。该标记为不可见字符,我们用EOF来表示。 那么在输入的时候,如果我们用的是fscanf,我们可以在以fscanf(……)!=EOF来作为循环的条件。如果到了文件末尾,则fscanf()将返回eof。 如果我们用的是cin,则可以用cin.eof()来作为循环的条件,如果到了文件末尾,则cin.eof()返回真,否则返回假。 也可以用while(cin>>ss),读入文件结束符时,cin返回0。 如果用的是getline(),如果到了文件末尾getline也会返回0。 此外,如果用gets(ss),遇到文件尾,也会返回0. 下面给出5种输入语句的例子; 例一: FILE *fin,*fout; fin=fopen("data.in","r"); fout=fopen("data.out","w"); char s[301]; while(fscanf(fin,"%s",s)!=EOF) { chuli(s); } 例二: ifstream fin(

c语言文件的读取和写入

早过忘川 提交于 2019-12-02 01:55:38
文件打开类型: 文件打开输出就用: 1 #include <stdio.h> 2 3 int main() 4 { 5 FILE *fp = NULL; 6 7 fp = fopen("/tmp/test.txt", "w+"); //第一个逗号前是文件位置。逗号之后是打开文件方式 8 fprintf(fp, "This is testing for fprintf...\n"); //逗号之前是一个指针,表明往里面输入。逗号之后fprintf是往文件里面输入 9 fputs("This is testing for fputs...\n", fp); 10 fclose(fp); //记得用完关闭文件 11 } 文件打开读取: 1 #include <stdio.h> 2 3 int main() 4 { 5 FILE *fp = NULL; 6 char buff[255]; 7 8 fp = fopen("/tmp/test.txt", "r"); 9 fscanf(fp, "%s", buff); //写入的时候和平常没有区别,还是只有字符串变量前不加‘&’,其他int、double等类型前都要加‘&’符号 10 printf("1: %s\n", buff ); 11 12 fgets(buff, 255, (FILE*)fp); //scanf遇到空格就会断开

fscanf使用心得

依然范特西╮ 提交于 2019-11-29 12:32:55
  好久没碰C语言了。从现在开始,要开始刷题了。 (1) int fscanf( FILE* stream, const char* format, ... ); https://www.programiz.com/cpp-programming/library-function/cstdio/fscanf (2) strlen(). 头文件<string.h> char c[]={'p','r','\0'} strlen(c)为2,'\0'将不被包括。 来源: https://www.cnblogs.com/shencangzaiyunduan/p/11517859.html

qsort / bsearch

∥☆過路亽.° 提交于 2019-11-29 08:29:26
qsort bsearch include <stdlib.h> void qsort (void* base, size_t num, size_t size, int (*compar)(const void*,const void*)); //第一个参数 数组 //第二个参数 数组大小 //第三个参数 元素大小 //第四个参数 函数 #include <stdlib.h> #include <stdio.h> typedef struct { char name[30]; int Chinese; int Math; int English; } Student; Student students[7]; void readData() { FILE* file = fopen("mark.txt", "r"); int i; for (i = 0; i < 7; i++) { fscanf(file, "%s", students[i].name); fscanf(file, "%d", &students[i].Chinese); fscanf(file, "%d", &students[i].Math); fscanf(file, "%d", &students[i].English); } fclose(file); } void displayData() {

fscanf函数的用法

╄→尐↘猪︶ㄣ 提交于 2019-11-26 17:35:54
fscanf函数用法 简要介绍 fcanf()函数是格式化读写函数。它读取的对象是磁盘文件 函数原型: int fscanf(FILE * fp,char * format,...); 其中fp为文件指针,format为C字符串,...为参数列表,返回值为成功写入的字符的个数。 fscanf函数会从文件输入流中读入数据,存储到format中, 遇到空格和换行时结束 。 使用示例 #include <stdio.h> #include <stdlib.h> typedef struct { int id; //学生id char name[30]; //学生姓名 char address[100]; //学生地址 }Student; int main() { Student student; FILE* fp = fopen("D:\\markdown.txt", "wt+"); if (fp == NULL) { puts("文件不存在,请在指定目录下先行创建文件!"); exit(0); } printf("请依次输入学生的id,姓名和地址:\n"); scanf("%d%s%s", &student.id, student.name, student.address); //将学生信息存入D:\\markdown.txt文件中 fprintf(fp, "%d\t%s\t%s\n