Tag: 文件

结构填充在C结构序列化中的影响(保存到文件)

我在C中有以下结构: typedef struct sUser { char name[nameSize]; char nickname[nicknameSize]; char mail[mailSize]; char address[addressSize]; char password[passwordSize]; int totalPoints; PlacesHistory history; DynamicArray requests; }User; typedef struct sPlacesHistory { HistoryElement array[HistorySize]; int occupied; int last; }PlacesHistory; 和function: void serializeUser( User * user, FILE * fp ) { fwrite( user, nameSize + nicknameSize + mailSize + addressSize + passwordSize […]

打开外部程序

我一直试图在C中打开像编辑器这样的外部程序。我已经搜索了几个小时但没有找到打开外部可执行文件的方法,例如从控制台应用程序打开Skype等。 到目前为止这是我的代码: /* fopen1.c */ #include #include #include #include int main(int) { FILE *fp; fp = fopen(“C://Users/Jonte/Desktop/Skype.exe”, “r”); } 如何打开外部文件? 谢谢,真诚的,贝林

如何从C中的文本文件中读取数字块

我有一个文件numbers.dat包含列格式的大约300个数字(浮点,负数)。 目标是首先使用300个数字填写numbers.dat,然后每次将100个数字提取到另一个文件中,例如n1.dat。 第二个文件n2.dat将包含来自numbers.dat的下一个100个数字,依此类推3个从number.dat获得的文件子集。 我无法理解如何考虑最后读取的第100个数字的位置,以便在preios提取的数字之后读取和获取下一个块的文件。 尝试Gunner提供的解决方案: FILE *fp = fopen(“numbers.dat”,”r”); FILE *outFile1,*outFile2,*outFile3; int index=100; char anum[100]; while( fscanf(fp,”%s”,anum) == 1 ) { if(index==100) { // select proper output file based on index. fprintf(outFile1,”%s”,anum); index++; } if(index >101) { fprintf(outFile2,”%s”,anum); index++; } } 问题是只写入一个数据。 什么应该是正确的过程?

将字符串从文件存储到数组

我已经从两个文件中读取了字符串并将它们存储到两个独立的数组中,然后我尝试对它们进行排序并将它们写入另一个文件中…这部分按照它应该的方式工作,但我真正需要做的是组合字符串从两个数组到一个,以便我可以按字母顺序对它们进行排序,然后写入文件,但问题是,当我尝试将这两个数组存储到一个数组中时,我得到分段错误作为错误消息。我真的不知道如何将这两个数组存储到另一个数组,以便我可以按顺序排序…我知道如何排序它我只是不知道如何将这些读入另一个数组…我不能使用#DEFINE因为我将把所有这些写成测试代码的函数… 我尝试过类似的东西 new [i] = str; 并且: 的strcpy(新[I],STR) 但这些都不起作用……我们将非常感谢任何帮助…… 这是我的代码: #include #include main (void) { char str[200]; char str2[300]; char new[300]; char temp [300]; int linenumber=0; FILE *fa = fopen (“book1.dat”, “r”); FILE *fb = fopen (“book2.dat”, “r”); FILE *fc = fopen (“fixed.txt”, “w”); int i=0; int j=0; int k; /*read the strings into an […]

用open()写入之前清除文件

使用fopen ,通过将其设置为w将自动为我清除文件。 但是现在我正试图用open做同样的事情, int file = open(filename, O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR); 这不保证文件为空并在开头写(?)。 我怎样才能做到这一点?

计算C中CSV文件的平均值

我正在编写一个代码,我在其中读取CSV文本文件,该文件在命令行中作为参数提供。 我必须计算给定文件的实验平均值: 例如,如果文件是 Bob’s experiment,12,33,55,8 Mary’s experiment,99,21,12,0 我必须打印鲍勃的实验(数字的平均值)玛丽的实验(数字的平均值) 这是我的代码: #include #include #include #include int main (int argc, char *argv[]){ FILE* ptr=fopen(argv[1], “rt”); int i=0; double sum=0; double count=0; double ave=0; if (ptr==NULL){ perror(“Error while opening file”); exit(EXIT_FAILURE); } while(!feof(ptr)){ char s=’a’; while(s!=’,’){ s=fgetc(ptr); printf(“%c”, s); } while((char) *ptr)!=’\n’){ fscanf(ptr, “%d”, &i); sum+=i; count++; } ave=sum/count; […]

CGI c文件打开

我在c中创建了一个cgi文件。 我有一个html文件,用户可以在其中选择他/她想要上传的文件。 问题是,当我选择文件时,文件的值只是文件的名称而不是目录,所以我无法读取文件。 我该如何访问该文件? Title: Author: File: c – cgi代码 void getParam(const char *Name, char Value[256]) { char *pos1 = strstr(data, Name); if (pos1) { pos1 += strlen(Name); if (*pos1 == ‘=’) { // Make sure there is an ‘=’ where we expect it pos1++; while (*pos1 && *pos1 != ‘&’) { if (*pos1 == […]

如何调整此算法以处理要修改的关键字的多次出现?

我想搜索所有出现的字符串(第一个参数),并在所有第一个字符串出现之前添加另一个字符串(第二个参数)。 理想情况下,我希望每一次出现的dime都用limedime代替。 然而,我设法做到了这一点,因为只有第一次出现这个词。 未检测到任何不匹配的匹配字符串,并且不执行任何操作。 此外,包含dime多行根据在前一行上进行的修改进行修改,这不是我想要的。 这是我得到的一些示例输出: something dime something dime something something 会变成 something limedime something dime something something 如果我有这个 dime notimportant! dime dime 我会得到 limedime notimportant! limelimedime limelimelimedime 编辑:我已修改代码,以便您可以使用stdin轻松测试它,并且还包括replace_str() : #include #include #include char *replace_str(char *str, char *orig, char *rep) { static char buffer[4096]; char *p; if(!(p = strstr(str, orig))) return str; strncpy(buffer, str, […]

如何获取从命令行参数调用的文件的目录?

例如,我在ubuntu中调用我的可执行文件: ./foo temp / game1.txt temp / game2 txt 我使用realpath()来查找game1.txt的路径。 但是使用它会给我一个完整的路径,包括game1.txt名称。 例如,它将作为 / home / * /Download/temp/game1.txt 我想删除该字符串上的game1.txt,以便我可以使用该字符串来输出该文件夹中的其他文件。 两个问题。 realpath()可以用于这种操作吗? 还有更好的方法吗? 有人能给我一个快速的方法来删除“game1.txt”,这样字符串就会以“/ home / * / Download / temp /”保存为字符串格式(不是字符)吗? 非常感谢你。

C中的递归和链表

我正在创建一个函数,它接受一个路径并读取其中的所有文件并创建一个链接列表。 读取目录效果很好,但是我很难在链表中创建和存储相关信息以供日后使用。 这是我目前正在使用的结构: typedef struct searchPool searchPool; struct searchPool{ char * path; char * fileName; char *pathFile; searchPool * next; }; 创建“SearchPool”类型的新元素的函数定义如下: searchPool * mallocStructPool (char * path, char * fileName, char * filePath ) { searchPool * element = (searchPool*)malloc(sizeof(searchPool)); element->path = malloc(sizeof(char * )); element->fileName = malloc(sizeof(char * )); element->pathFile = malloc(sizeof(char * […]