gpt4 book ai didi

c - 如何将命令行输入的行存储到 C 的缓冲区中?

转载 作者:行者123 更新时间:2023-11-30 20:29:04 25 4
gpt4 key购买 nike

我正在尝试在操作系统的命令行上创建一个命令来创建文本文件。用户键入文本,按 Enter 键,再键入一些文本,然后在文本完成后按 Enter 键两次以创建文件。问题是只有输入的第一行被存储到缓冲区中。

int i=0;
int buffTotal=0;
char textLine[80];
char buffer[13312];

syscall(1, textLine) //user enters line of text which is stored in textLine

while(textLine[i] != 0xa) //0xa is the character appended to end of text typed in textLine
{
buffer[i] = textLine[i];
i++;
}
buffTotal+=80;

while(textLine[0] != 0x0A) //0X0A would be the first char in the array if user typed enter twice
{
i=0;
syscall(1, textLine);

while(textLine[i] != 0xa)
{
buffer[buffTotal+i] = textLine[i];
i++;
}
buffTotal+=80;
}
syscall(0,buffer); //this prints out the buffer

最佳答案

通过阅读您的问题,我认为您想要: 1. 创建一个创建文本文件的命令。 2. 它还从用户那里获取文本。

假设您使用的是 Linux,您可以通过以下代码轻松实现此目的:

#include<stdio.h>
void main(int argc, char *argv[])
{
char c;
if(argc<2)
{
printf("enter file name.\n");
return;
}
FILE* fp=fopen(argv[1],"w");
while((c=getchar())!='`') // terminating character is `
{
putc(c,fp);
}
fclose(fp);
}

编译后,您可以创建运行程序的别名。 output:

关于c - 如何将命令行输入的行存储到 C 的缓冲区中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59132914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com