在 C 中显示缓冲区中的第一百组字符
Displaying a hundredth set of characters from a buffer in C
读取TDT.txt(一次70个字符)并显示每一百组
已读 70 个字符。
所以,我一直在思考如何获取放置在这个字符缓冲区中的字符并将它们打印到屏幕上,而屏幕只显示每百分之一。这是我目前的方法
int fileOpen = open("TDT.txt",2);
int fileClose = 0;
char read70[70];
int fileEnd = lseek(fileOpen,0,2);
int test1 = lseek(fileOpen, 0,0);
for(i = 0; i < fileEnd; i++)
{
fileRead = read(fileOpen,read70,70);
count++;
if(count == 100)
{
printf("%s",read70[i]);
count = 0;
}
}
我不确定如何显示第 100 组 70 个字符。我的上述做法只是一种尝试。我最终遇到了段错误,但我不确定为什么。
我想这意味着每第100个桶,每个桶包含70个字符,应该被打印出来。请参阅下面的代码,它正是这样做的。
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
int main() {
char buffer[71]; // 70 + 1 just for the sake of using printf later on...
buffer[70] = '[=10=]';
int myFile = open("TDT.txt",O_RDONLY);
if (myFile < 0)
return 1;
size_t charRead = 0;
int nrOfSets=0;
charRead = read(myFile, &buffer, 70);
while (charRead == 70) {
nrOfSets++;
if (nrOfSets % 100 == 0) // every 100th set read in?
printf("set: %s\n", buffer);
charRead = read(myFile, &buffer, 70);
}
close (myFile);
}
读取TDT.txt(一次70个字符)并显示每一百组 已读 70 个字符。
所以,我一直在思考如何获取放置在这个字符缓冲区中的字符并将它们打印到屏幕上,而屏幕只显示每百分之一。这是我目前的方法
int fileOpen = open("TDT.txt",2);
int fileClose = 0;
char read70[70];
int fileEnd = lseek(fileOpen,0,2);
int test1 = lseek(fileOpen, 0,0);
for(i = 0; i < fileEnd; i++)
{
fileRead = read(fileOpen,read70,70);
count++;
if(count == 100)
{
printf("%s",read70[i]);
count = 0;
}
}
我不确定如何显示第 100 组 70 个字符。我的上述做法只是一种尝试。我最终遇到了段错误,但我不确定为什么。
我想这意味着每第100个桶,每个桶包含70个字符,应该被打印出来。请参阅下面的代码,它正是这样做的。
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
int main() {
char buffer[71]; // 70 + 1 just for the sake of using printf later on...
buffer[70] = '[=10=]';
int myFile = open("TDT.txt",O_RDONLY);
if (myFile < 0)
return 1;
size_t charRead = 0;
int nrOfSets=0;
charRead = read(myFile, &buffer, 70);
while (charRead == 70) {
nrOfSets++;
if (nrOfSets % 100 == 0) // every 100th set read in?
printf("set: %s\n", buffer);
charRead = read(myFile, &buffer, 70);
}
close (myFile);
}