并行计算+Linux file操作

用户输入到文件并读取

基于stream

cpp 复制代码
#include <stdio.h>

int main()
{
    // 打开要写入的文件
    FILE *fp = fopen("file.txt", "w");
    if (fp == NULL) {
        printf("Failed to open file\n");
        return 1;
    }

    // 从命令行中读取输入
    char buffer[1024];
    printf("Enter text to write to file: ");
    fgets(buffer, sizeof(buffer), stdin);

    // 将读取到的输入写入文件
    fprintf(fp, "%s", buffer);

    // 关闭文件
    fclose(fp);

    printf("Text written to file successfully\n");

    return 0;
}
c 复制代码
#include <stdio.h>

int main()
{
    // 打开要读取的文件
    FILE *fp = fopen("file.txt", "r");
    if (fp == NULL) {
        printf("Failed to open file\n");
        return 1;
    }

    // 读取文件中的数据
    char buffer[1024];
    int n = fread(buffer, sizeof(char), sizeof(buffer), fp);
    if (n > 0) {
        printf("Read %d bytes from file\n", n);
        printf("File content: %s", buffer);
    } else {
        printf("Failed to read file\n");
    }

    // 关闭文件
    fclose(fp);

    return 0;
}

基于文件标识符

c 复制代码
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>

int main()
{
    int fd = open("file.txt", O_RDWR);
    if (fd == -1) {
        printf("Failed to open file\n");
        return 1;
    }

    // 读取文件中的数据
    char buffer[1024];
    int n = read(fd, buffer, sizeof(buffer));
    if (n > 0) {
        printf("Read %d bytes from file\n", n);
        printf("File content: %s", buffer);
    } else {
        printf("Failed to read file\n");
    }

    // 将数据写入文件
    char data[] = "Hello, world!";
    int m = write(fd, data, sizeof(data));
    if (m > 0) {
        printf("Wrote %d bytes to file\n", m);
    } else {
        printf("Failed to write file\n");
    }
    
    // 从用户输入中读取数据
    char buffer[1024];
    printf("Enter text to write to file: ");
    fgets(buffer, sizeof(buffer), stdin);
    // 将数据写入文件
    int n = write(fd, buffer, sizeof(buffer));
    if (n > 0) {
        printf("Wrote %d bytes to file\n", n);
    } else {
        printf("Failed to write file\n");
    }

    // 定位文件指针
    lseek(fd, 0, SEEK_END);
    long size = ftell(fd);
    printf("File size: %ld bytes\n", size);

    // 关闭文件
    close(fd);

    return 0;
}

按行写入和输出

c 复制代码
#include <stdio.h>
#include <stdlib.h>

int main()
{
    FILE *fp;
    char *line = NULL;
    size_t len = 0;
    ssize_t nread;

    // 打开文件
    fp = fopen("file.txt", "r");
    if (fp == NULL) {
        printf("Failed to open file\n");
        return 1;
    }

    // 逐行读取文件并输出
    while ((nread = getline(&line, &len, fp)) != -1) {
        printf("%s", line);
    }

    // 关闭文件
    fclose(fp);
    if (line) {
        free(line);
    }

    return 0;
}
c 复制代码
#include <stdio.h>
#include <stdlib.h>

int main()
{
    FILE *fp;
    char *line = NULL;
    size_t len = 0;
    ssize_t nread;

    // 打开文件
    fp = fopen("file.txt", "w");
    if (fp == NULL) {
        printf("Failed to open file\n");
        return 1;
    }

    // 从用户输入中读取数据,并按行写入文件
    printf("Enter text to write to file (type 'quit' to exit):\n");
    while (1) {
        nread = getline(&line, &len, stdin);
        if (nread == -1 || strncmp(line, "quit", 4) == 0) {
            break;
        }
        fprintf(fp, "%s", line);
    }

    // 关闭文件
    fclose(fp);
    if (line) {
        free(line);
    }

    return 0;
}
相关推荐
闲不住的李先森几秒前
深入解析 Cursor 规则:为团队打造统一的 AI 编程规范
前端·ai编程·cursor
李辰洋10 分钟前
STP配置
运维·服务器·网络
FlowGram14 分钟前
FlowGram 官网建设
前端
~无忧花开~21 分钟前
JavaScript学习笔记(二十八):JavaScript性能优化全攻略
开发语言·前端·javascript·笔记·学习·性能优化·js
BumBle22 分钟前
基于UniApp实现DeepSeek AI对话:流式数据传输与实时交互技术解析
前端·uni-app
九十一23 分钟前
vue3事件总线与emit
前端·vue.js
岁月向前1 小时前
不同的协议和场景防丢包方案
前端
琢磨先生TT1 小时前
一个前端工程师的年度作品:从零开发媲美商业级应用的后台管理系统!
前端·前端框架
云枫晖1 小时前
JS核心知识-Ajax
前端·javascript
vortex51 小时前
建立本地 APT 仓库教程
linux·运维开发