大佬教程收集整理的这篇文章主要介绍了如何使用来自命令行的输入文件在 linux 上运行 C 代码?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试用 C 语言执行一些简单的任务,并在 linux 中从命令行运行它们。 我在使用 C 和从命令行运行代码时都遇到了一些问题,并使用给定的文件名作为参数。我以前从未用 C 编写代码。
从文件中删除偶数。文件名被转移到 程序作为命令行中的参数。节目变了 这个文件。
我该怎么做?
我尝试编写 c 代码:
#include <stdio.h>
int main ()
{
file *f = fopen ("arr.txt","r");
char c = getc (f);
int count = 0;
int arr[20];
while (c != EOF)
{
if(c % 2 != 0){
arr[count] = c;
count = count + 1;
}
c = getc (f);
}
for (int i=0; i<count; i++){
putchar(arr[i]);
}
fclose (f);
getchar ();
return 0;
}
我会这样做(删除额外的声明 => 微优化)
/**
* check if file is avaiable.
*/
if (f == NULL)
{
printf("File is not available \n");
}
else
{
/**
* Populate array with even numbers.
*/
while ((ch = fgetc(f)) != EOF)
ch % 2 != 0 ? push(arr,ch); : conTinue;
/**
* Write to file those numbers.
*/
for (int i = 0; i < 20; i++)
fprintf(f,"%s",arr[i]);
}
推送实现:
void push(int el,int **arr)
{
int *arr_temp = *arr;
*arr = NULL;
*arr = (int*) malloc(sizeof(int)*(n - 1));
(*arr)[0] = el;
for(int i = 0; i < (int)n - 1; i++)
{
(*arr)[i + 1] = arr_temp[i];
}
}
为了写入同一个文件,不关闭和打开它,你应该提供两种方法,w+(写入和读取),这个方法会清除它的内容。
因此,为此更改打开文件的行。
FILE *f = fopen ("arr.txt","w+");
您应该寻找实现动态数组(指针和内存管理)的方法。
在这个例子中,你可以简单地继续在主循环中自己编写一个临时变量来存储一系列数字,并将这些值堆叠起来
像这样(伪代码,玩得开心:)):
DELIMITER one of (',' | '|' | '.' | etc);
char[] temp;
if(ch not DELIMITER)
push ch on temp;
else
push temp to arr and clear it's content;
希望这有用。
,这是一个满足您要求的完整程序:
a b variablename1_AAA variablename2_AAA
1: 1 4 4 8
2: 2 5 10 20
3: 3 6 18 36
,第一个参数在 int main(int argc,char *argv[])
中,如果 argv[1]
至少为 2。argc
以上是大佬教程为你收集整理的如何使用来自命令行的输入文件在 linux 上运行 C 代码?全部内容,希望文章能够帮你解决如何使用来自命令行的输入文件在 linux 上运行 C 代码?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。