[英]read from file line by line, write random lines to another file in C
So i have a file with multiple lines on it, and I want to copy some of those line to a new file, random lines to be specific. 所以我有一个上面有多行的文件,我想将其中一些行复制到一个新文件中,具体来说是随机行。 Everything goes fine as long as I copy all the lines file from file, but when I try to introduce randoming, in the new file the lines misses couple characters
只要我从文件中复制所有行文件,一切都会很好,但是当我尝试引入随机时,在新文件中,行会丢失几个字符
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <malloc.h>
#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>
int main()
{
srandom(time(NULL));
int n,i=0,j=0,k,l;
char c[200][200];
char *buff=(char *)malloc(sizeof(char));
int f= open("erzekelokbeugro.txt",O_RDONLY);
int f2= open("teszt.txt",O_WRONLY|O_CREAT|O_TRUNC,S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);
do
{
do
{
n=read(f,buff,1);
c[j][i]=*buff;
//printf("%c",buff[0]);
i++;
}
while(buff[0] !='\n');
j++;
}
while(n>0);
k=10;
//j=73;
i=0;
while(k>0)
{
j=rand()%49;
//printf("%d ", j);
do
{
*buff=c[j][i];
if(buff[0]!=0)
{
write(f2,buff,1);
//printf("%c",buff[0]);
}
i++;
}
while(buff[0] !='\n');
//printf("----\n");
k--;
}
close(f);
close(f2);
return 0;
}
The input is someting like this (i wont copy the whole file, just a sample, its in hungarian, but the content doesnt matter anyway): 输入是这样的(我不会复制整个文件,只是一个样本,用匈牙利语,但是无论如何内容都没有关系):
8.Érzékelés alsó határa (detektálási küszöb)
9.Felbontás
10.Nullponteltolódás (drifft)
11.Érzékenység eltolódás
12.Ismétlési (reprodukciós) hiba
13.Csereszabatosság mértéke
14.Szelektivitás
15.Beállási idő
16.Élettartam
17.Hőmérséklet definíciója
18.Mit tud a Celsius skáláról:
19.Ismertesse a hőmérsékleti együttható (?) képletét az ellenállás-hőmérő esetén.Nevezze meg a képlet elemeit.
and the output is like this: 输出是这样的:
és voltmérő sematikus ábrája
5.Linearitás
as műszerek működési elve:
15.Beállási idő
26.Ismertesse a nyomás definícióját, és kiszámítási képletét.
28.Villamos elvű passzív nyomásmérő főbb típusai
34.Ellenállás nyomásérzékelő mérési tartománya és pontossága
29.A villamos elvű nyomásmérők előnyei
35.Piezoelektromos nyomásérzékelés mérési elve
ust használó szenzorok előnyei:
As you can see, all the line should start with a number, but sometimes its missing, also some character (even half a line), but the next goes fine 如您所见,所有行都应以数字开头,但有时会丢失一些字符(即使是半行),但下一行很好
i
needs to be initialized each time you pick a new j
. 每当您选择一个新的
j
时, i
需要初始化。 You might also want to look into how to print a whole string at once, instead of doing it a character at a time. 您可能还想研究如何一次打印整个字符串,而不是一次打印一个字符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.