Tag: 换行

如果我在末尾添加一个新行’\ n’,scanf如何工作

包括 int main(){ int a,b,c; scanf(“%d%d%d\n”,&a,&b,&c); printf(“%d %d %d”,a,b,c); return 0; } 看看我正在接受3个输入并打印3个输出……但是当我在scanf函数结束时添加了一个新行时,我必须给4个输入来获得3个输出(我得到前3个作为输入)… .scanf如何在这里工作? 在这种情况下: 包括 int main(){ double n[2][5]; int i,j; for (i=0;i<=1;i++){ for(j=0;j<=4;j++){ scanf("%lf\n",&n[i][j]); printf("Class=%d Roll=%d Marks=%lf\n",i+6,j+1,n[i][j]); } } return 0; } 看看我必须提供11个输入才能获得10个输出…每次我输入一个输入时,我将前一个输入作为输出…… scanf如何在这里工作?

有关换行和fgets()的查询

代码1: – int main() { char str[200]; fgets(str,200,stdin); printf(“%s”,str); return 0; } 输出: – ab cd ab cd (line feed) 代码2: – int main() { char str[200]; gets(str); printf(“%s”,str); return 0; } 输出: – ab cd ab cd 当我输入ab(space)cd(enter key) ,然后在fgets()情况下,我在输出中获得line feed ,而在gets()情况下,没有显示新换行符。 在这种情况下line feed的问题是什么。

VB换行逃脱char?

在CI中使用”1st line 1\n2nd line”作为换行符,但是VB怎么样? 我知道”1st line” & VbCrLf & “2nd line”但它太冗长,VB中换行符的转义字符是什么? 我想要打印 1st line 2nd line 我尝试使用\n但无论运行编译器多少次,它总是会输出 1st line\n2nd line 有任何想法吗?

C中的fscanf没有读完整行?

这非常简单,但我只是遇到了问题。 文本文件有一个标题, 例如, # Avizo BINARY-LITTLE-ENDIAN 2.1 define Lattice 496 384 470 Parameters { AlignTransform { slice0000 0 -0 -30 -1, slice0001 0 -0 -30 -1, slice0002 0 -0 -30 -1, 我正在尝试使用fscanf读取每一行。 int i; for ( i = 0; i < 10; i++ ) { fscanf(fp, "%s\n", buf); printf("%d) %s\n",i,buf); } 导致这个 0) # 1) […]

从fgets中删除换行符

如果这个问题很明显,或者我犯了一个简单的逻辑错误,我很抱歉。 我已经搜索了各种方法来摆脱使用fgets产生的换行符,但是在构建时我仍然遇到问题。 我认为我不能正确理解某些内容并错误地应用我的“解决方案”。 我希望透明,并说这是学校的任务。 一切都运行良好,除了我的输出,它有不必要的新行。 此函数的唯一目的是将名称读入结构数组。 void initialize(FILE * ifp, Candidate * electionCandidates, int count) { for (int i = 0; i < count; i++) { fgets (electionCandidates[i].name , 20 , ifp); if (electionCandidates[i].name[strlen(electionCandidates[i].name) – 1] == '\n') { electionCandidates[i].name[strlen(electionCandidates[i].name) – 1] = '\0'; } } } 当我尝试运行时显示以下内容:“隐式声明库函数”strlen“类型为unsigned long(constant char *)”

fgets()在fscanf()之后无法正常工作

我使用fscanf读取日期然后fgets读取笔记。 但是在第一次迭代之后,fscanf返回值-1。 我使用GDB逐步调试程序。 它在第一次使用fgets之前工作正常。 当我尝试在第一次迭代时打印出由fgets读取的行时,它给了我: (gdb) print line $6 = “\rtest\r18/04/2010\rtest2\r03/05/2010\rtest3\r05/08/2009\rtest4\r\n\000\000\000\000q\352\261\a\370\366\377\267.N=\366\000\000\000\000\003\000\000\000\370xC\000\000\000\000\000\000\000\000\000\001\000\000\000\227\b\000\000\070\367\377\267H\364\377\267\362\202\004\bdoD\000\354\201\004\b\001\000\000\000\304oC\000p\363\377\277\260zC\000D\363\377\277\n!B\000\064\363\377\277\354\201\004\b(\363\377\277TzC\000\000\000\000\000\070\367\377\267\001\000\000\000\000\000\000\000\001\000\000\000\370xC\000\001\000\000\000\000\000\312\000\000\000\000\000\377\260\360\000\001\000\000\000\277\000\000\000\364\317\000\000\344\261\\\000\000\000\000\000p\363\377\277|\233\004\b\350\362\377\277 \204\004\b\005\000\000\000|\233\004\b\030\363\377\277” 它看起来像fgets读取剩余的条目,然后将它们全部存储在一个字符串中。 我不确定为什么会这样做。 这是主要代码: int main(int argc, char* argv[]) { FILE* file; int numEntries, i = 0; int index = atoi(argv[1]); char line[SIZE]; JournalEntry *entry; /*argument provided is the entry user wants to be displayed*/ if (argc > 2) { perror(“Error: Too many arguments […]

C语言中的换行符是什么:\ r或\ n?

C中的换行符是什么? 我知道不同的操作系统有不同的行尾字符,但它们会被翻译成C换行符。 这个角色是什么?