Tag: 提取

使用LibTar解压缩文件

当我尝试使用Libtar提取文件时,我遇到了一些问题。 这是我的代码: int htlp_decompress_decompress(char * filename) { TAR * tar_file; char rootdir[200]; strcpy(rootdir, “/var/cache/htpackage/”); if (tar_open(&tar_file, filename, NULL, O_RDONLY, 0, TAR_GNU) == -1) { fprintf(stderr, “tar_open(): %s\n”, strerror(errno)); return -1; } if (tar_extract_all(tar_file, rootdir) != 0) { fprintf(stderr, “tar_extract_all(): %s\n”, strerror(errno)); return -1; } if (tar_close(tar_file) != 0) { fprintf(stderr, “tar_close(): %s\n”, strerror(errno)); return -1; […]

通过一串字符并提取数字?

给定一串字符,我如何通过它并将该字符串中的所有数字分配给一个整数变量,而忽略所有其他字符? 当有一串字符已经通过gets()读入时,我想要执行此任务,而不是在读取输入时。

我有一个.mp3文件。 如何从C中的其余声音中分离出人声?

它是否有可能在C [我知道它有可能一般 – GOM播放器做到了]? 让我开始吧……你怎么说? 你如何确定人声与其他声音的区别?

如何从C中的文件中提取数据

我有一个包含6列N个数字的.dat文件,如下所示: -4.997740e-01 -1.164187e+00 3.838383e-01 6.395961e+01 -1.938013e+02 -4.310365e-02 -1.822405e+00 4.470735e-01 -2.691410e-01 -8.528020e+01 -1.358874e+02 -7.072167e-01 9.932887e-01 -2.157249e+00 -2.303825e+00 -5.508925e+01 -3.548236e+02 1.250405e+00 -1.871123e+00 1.505421e-01 -6.550555e-01 -3.254452e+02 -5.501001e+01 8.776851e-01 1.370605e+00 -1.028076e+00 -1.137059e+00 6.096598e+01 -4.472264e+02 -1.268752e+00 ………… ………… ………… ………… ……….. ……….. 我想用C语言编写代码,我从file.dat中提取数据,并将每列的编号分配给一个向量; 例如: V1=[-4.997740e-01;-1.822405e+00;9.932887e-01;-1.871123e+00;1.370605e+00]; 所有6列都是如此。 到目前为止,我唯一知道的是我需要从做这样的事情开始: int main(){ FILE *fp; fp=fopen(“file.dat”,”r”); if (!fp){ printf(“Error\n”); return 1; } return 0; […]

C中最快的去交织操作?

我有一个指向mixed字节数组的指针,它包含两个不同数组array1和array2的交错字节。 mixed看起来像这样: a1b2c3d4… 我需要做的是解交织字节,所以我得到array1 = abcd…和array2 = 1234… 我知道提前mixed的长度,并且array1和array2的长度是等价的,都等于mixed / 2 。 这是我当前的实现(已分配array1和array2 ): int i, j; int mixedLength_2 = mixedLength / 2; for (i = 0, j = 0; i < mixedLength_2; i++, j += 2) { array1[i] = mixed[j]; array2[i] = mixed[j+1]; } 这避免了任何昂贵的乘法或除法运算,但仍然运行得不够快。 我希望有一些像memcpy这样的东西,它可以使用一个可以使用低级块复制操作的索引器来加速这个过程。 是否有比我现有的更快的实施? 编辑 目标平台是针对iOS和Mac的Objective-C。 对于iOS设备而言,快速操作更为重要,因此针对iOS的解决方案将比没有更好。 更新 感谢大家的回应,尤其是Stephen Canon,Graham Lee和Mecki。 […]

在C中提取字节

我正在用C语言制作一个程序。我要提取字节。 un8 extractbyte (int r, int pos)应该从数字r返回字节数pos。 例如,我用作输入: 0x7788AABB 。 那么输出应该是: 零件号0是BB 第1部分是AA 第2部分是88 第3部分是77 我被困在程序的最后部分,我在评论中添加了问号。 这些线路不正确,我对如何使其工作感到困惑…我现在得到的输出是每个部分的bb。 顺便说一句,我在C方面很陌生。 #include #include typedef unsigned int un32; typedef unsigned char un8; un8 extractbyte (un32 r, un8 pos); int main () { un32 number; un8 k; printf(“Enter a number:\n”); scanf(“%x”,&number); for (k=0; k<=3;k++) printf ("Part number %d is: %x […]