小编lac*_*991的帖子

如何使用C选择文本文件的最后一行

我试图找到一种方法来选择文本文件的最后一行使用C(不是c ++或c#,只是C),我很难找到一种方法来做到这一点,如果有人可以帮助我解决这个问题我将非常感激,谢谢!(顺便说一下,我想要做的一个很好的例子,这将类似于尾巴-n 1将在bash中做什么)

c file-io

2
推荐指数
2
解决办法
5381
查看次数

当我使用strtok()时,有没有办法挑出个别令牌?

如果我有一个字符串:Hi:my:name:is:lacrosse1991:我怎么能strtok用来检索is(换句话说第四个字段)?这将类似于你在bash中使用cut的方式,我会这样做cut -d ":" -f 4.如果这是一个错误的功能做这样的事情,请让我知道,任何帮助非常感谢,谢谢!(我刚刚开始自学C语言,如果这些是我要求的明显问题,我会提前道歉)

这是我将使用的剪切命令的示例

x=$(echo "$death" | cut -d ':' -f 4)
y=$(echo "$death" | cut -d ':' -f 5)
z=$(echo "$death" | cut -d ':' -f 6)
Run Code Online (Sandbox Code Playgroud)

c strtok

2
推荐指数
1
解决办法
490
查看次数

如何将putchar的输出保存到变量中

我正在研究一些代码,在将文本进一步发送到程序之前过滤文本(此代码删除除了所有字母数字字符和下划线之外的所有内容),代码本身工作正常,除了我无法找到存储输出的方法如果我不得不猜测,这可能涉及将stdout从putchar保存到变量中,但是如果有人能指出我正确的方向,那么我无法在网上找到这么多信息.为此,我真的很感激,谢谢!

#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main(void) {
    int i;
    char *p;
    char stg[] = "hello";
        for (p = &stg[0]; *p != '\0'; p++) {
           if (isalnum(*p) || *p == '_') {
           putchar (*p);
           }
        }
        putchar ('\n');
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c

2
推荐指数
1
解决办法
2151
查看次数

如何获取此readdir代码示例以搜索其他目录

我目前正在使用一个代码示例,最初设计用于获取参数,然后在当前目录中搜索该参数,我试图通过替换"."来搜索另一个目录(/ dev/shm to exact). " 使用"/ dev/shm"但是当我搜索某些内容时代码没有任何内容*(请注意通配符).通配符搜索在当前目录中正常工作,所以我不认为这是外卡是问题,如果有人可以帮助我,虽然我真的很感激,谢谢!

#include <dirent.h>
#include <errno.h>
#include <stdio.h>
#include <string.h>


static void lookup(const char *arg)
{
    DIR *dirp;
    struct dirent *dp;


    if ((dirp = opendir(".")) == NULL) {
        perror("couldn't open '.'");
        return;
    }


    do {
        errno = 0;
        if ((dp = readdir(dirp)) != NULL) {
            if (strcmp(dp->d_name, arg) != 0)
                continue;


            (void) printf("found %s\n", arg);
            (void) closedir(dirp);
                return;


        }
    } while (dp != NULL);


    if (errno != 0)
        perror("error reading directory");
    else
        (void) printf("failed to …
Run Code Online (Sandbox Code Playgroud)

c file-io glob

2
推荐指数
1
解决办法
1万
查看次数

如何在发送到文件之前"处理"tee中的文本

有没有办法在发送到文件之前处理tee中的文本?

例如,如果程序输出以下行:

stack 11
stack 22
stack 33
serverfault
serverfault
stack 44
Run Code Online (Sandbox Code Playgroud)

我怎么能只将包含"stack"的行发送到文件,同时仍然通过stdout显示程序的原始输出?

我不确定是否可以使用发球台做到这一点,所以我愿意接受任何其他建议.

谢谢

bash shell debian

2
推荐指数
1
解决办法
77
查看次数

为什么我不能将输出从sed重定向到文件

我正在尝试运行以下命令

./someprogram | tee /dev/tty | sed 's/^.\{2\}//' > output_file
Run Code Online (Sandbox Code Playgroud)

但是当我去检查时,文件总是空白的.如果我> output_file从命令的末尾删除,我能够看到sed的输出没有任何问题.

有没有办法可以将此命令中sed的输出重定向到文件?

bash debian

2
推荐指数
1
解决办法
2840
查看次数

如何将表示数字的char字符转换为int中的相同数字?

我想弄清楚如何转换一个字母数字

char num = "1";
Run Code Online (Sandbox Code Playgroud)

与整数相同的数字

char num = "1"; would be converted to int numc = "1";
Run Code Online (Sandbox Code Playgroud)

并且我能想到的唯一方法是手动执行一堆if语句,这看起来有点过分,所以我只是想知道是否有人知道更简单的方法来做到这一点?谢谢!

c

1
推荐指数
1
解决办法
761
查看次数

如何将文本文件读入数组?

我想知道如何将文本文件读入数组,文本文件将包含以下内容:

string:string:string
string:string:string
string:string:string
etc
Run Code Online (Sandbox Code Playgroud)

(字符串:字符串:字符串在一行上)

java arrays string

1
推荐指数
1
解决办法
7334
查看次数

我应该如何在bash环境中减去两个不同的时间

我目前正在处理一个处理和组合几个不同文件的脚本,对于这一部分,我必须找到两个不同时间之间的差异,以确定某人工作的"总"时间.时间本身采用以下格式

 34:18:00,40:26:00,06:08:00
Run Code Online (Sandbox Code Playgroud)

第一个是开始时间,第二个结束时间,第三个总时间.虽然这个显示正确,但有些条目需要进行双重检查和纠正(根据开始/结束时间总时间不正确).我在其他帖子中找到了几个不同的解决方案,但其中大多数还包括日期等等(大多数都使用awk),我对awk没有经验,所以我不确定如何从这些示例中删除日期部分.我也听说过我可以将时间转换为unix纪元时间,但我很好奇是否还有其他方法可以实现这一点,谢谢!

math bash time

1
推荐指数
1
解决办法
95
查看次数

awk:如何删除文件中的重复行并同时将它们输出到另一个文件中?

我目前正在处理一个处理csv文件的脚本,它所做的一件事是删除并记下文件中的重复行.我目前的方法是使用uniq -d一次运行uniq以显示所有重复项,然后再次运行uniq而不用任何选项来实际删除重复项.话虽如此,我想知道是否可以在一个动作中执行相同的功能,而不是必须运行uniq两次.我发现了一些使用awk删除重复项的不同示例,但据我所知,我无法找到任何显示重复项并同时删除它们的示例.如果有人可以为此提供建议或帮助,我会非常感激,谢谢!

csv bash awk uniq

1
推荐指数
1
解决办法
2143
查看次数

标签 统计

c ×5

bash ×4

debian ×2

file-io ×2

arrays ×1

awk ×1

csv ×1

glob ×1

java ×1

math ×1

shell ×1

string ×1

strtok ×1

time ×1

uniq ×1